• Viernes 29 de Marzo de 2024, 06:24

Autor Tema:  Mi applet no funciona  (Leído 3358 veces)

digichap28

  • Miembro activo
  • **
  • Mensajes: 64
    • Ver Perfil
Mi applet no funciona
« en: Sábado 24 de Octubre de 2009, 23:52 »
0
Hola que tal?
Bueno, recien estoy trabajando con los applets y lo que he logrado hasta ahora ha sido que la aplicacion aparezca en un browser, pero las acciones de los botones que en esta estan no funcionan.
Es decir, al presionar algun boton que se supone tiene una accion  no hace nada, lo raro es que ya he probado la aplicacion como un .jar y desde el eclipse le he dado run as. De las 2 maneras me han funcionado las acciones.

La verdad no se que sera lo que esta ocurriendo, estoy pensando que el codigo de las acciones para los applets debe ser distinto, o que el browser tiene alguna opcion para restringir las acciones de los applets. No tengo ni la mas minima idea.

Por favor ayudenme con esto.
Muchas gracias y saludos.

Juann

  • Miembro activo
  • **
  • Mensajes: 70
  • Nacionalidad: co
    • Ver Perfil
Re: Mi applet no funciona
« Respuesta #1 en: Domingo 25 de Octubre de 2009, 04:01 »
0
Pero estas haciendo el code HTML, no se si me equivoco, pero para un applet es ".class" no un .jar  :D
Juan Camilo Pareja

http://darkymiau.blogspot.com/ Mi blog sobre informatica en General

gophlb

  • Visitante
Re: Mi applet no funciona
« Respuesta #2 en: Domingo 25 de Octubre de 2009, 08:26 »
0
Cita de: "digichap28"
La verdad no se que sera lo que esta ocurriendo
pon el codigo que llevas hecho y le echamos un vistazo entre todos, asi podremos ayudarte mejor

digichap28

  • Miembro activo
  • **
  • Mensajes: 64
    • Ver Perfil
Re: Mi applet no funciona
« Respuesta #3 en: Domingo 25 de Octubre de 2009, 18:00 »
0
A continuacion el codigo HTML

Código: Text
  1. <html>
  2. <header> <title>APPLET PRUEBA</title>
  3. </header>
  4. <body>
  5. <center><APPLET CODE="Applet.class" WIDTH="500" HEIGHT="600">
  6. </APPLET></center>
  7. </body>
  8. </html>
  9.  

A continuacion el codigo java

Código: Java
  1. import java.awt.BorderLayout;
  2. import java.awt.Color;
  3. import java.awt.FlowLayout;
  4. import java.awt.event.ActionEvent;
  5. import java.awt.event.ActionListener;
  6. import java.io.BufferedReader;
  7. import java.io.File;
  8. import java.io.FileNotFoundException;
  9. import java.io.FileReader;
  10. import java.io.IOException;
  11. import java.util.Vector;
  12.  
  13. import javax.swing.BoxLayout;
  14. import javax.swing.JApplet;
  15. import javax.swing.JButton;
  16. import javax.swing.JFileChooser;
  17. import javax.swing.JLabel;
  18. import javax.swing.JOptionPane;
  19. import javax.swing.JPanel;
  20. import javax.swing.JScrollPane;
  21. import javax.swing.JTable;
  22. import javax.swing.JTextField;
  23. import javax.swing.table.DefaultTableModel;
  24.  
  25.  
  26. public class Applet extends JApplet {
  27.     private JPanel panelPrincipal;
  28.     private JPanel panel1;
  29.     private JPanel panel2;
  30.     private JPanel panel3;
  31.     private JPanel panel4;
  32.     private JPanel panel_auxiliar;
  33.    
  34.     private JLabel etiqueta_archivo;
  35.     private JTextField direccion_archivo;
  36.     private JButton boton_buscar;
  37.     private JFileChooser selector_archivo;
  38.     private File archivo;
  39.    
  40.     private JTable tabla_datos;
  41.     private DefaultTableModel modelo_tabla;
  42.     private JScrollPane scroll1;
  43.     private Object dato;
  44.     private JButton boton_cargar;
  45.    
  46.     private JTable tabla_datos2;
  47.     private Vector vector;
  48.    
  49.     public void init(){
  50.  
  51.             panelPrincipal = (JPanel) getContentPane();
  52.             panelPrincipal.setLayout(new BoxLayout(panelPrincipal,BoxLayout.Y_AXIS));
  53.             panel1 =new JPanel();
  54.             panel1.setBackground(Color.LIGHT_GRAY);
  55.             panel2 =new JPanel();
  56.             panel3 =new JPanel();
  57.             panel4 =new JPanel();
  58.             panel1.setLayout(new FlowLayout(FlowLayout.CENTER));
  59.             panel2.setLayout(new FlowLayout(FlowLayout.CENTER));
  60.             panel3.setLayout(new FlowLayout(FlowLayout.CENTER));
  61.             panel4.setLayout(new FlowLayout(FlowLayout.RIGHT));
  62.            
  63.        
  64.             ActionListener accionBuscar= new ActionListener(){
  65.                 @Override
  66.                 public void actionPerformed(ActionEvent arg0) {
  67.                     // TODO Auto-generated method stub
  68.                     selector_archivo=new JFileChooser();
  69.                     selector_archivo.setFileSelectionMode(JFileChooser.FILES_ONLY);
  70.                     int valor =selector_archivo.showOpenDialog(panelPrincipal);
  71.                     if(valor==JFileChooser.APPROVE_OPTION){      
  72.                          archivo = selector_archivo.getSelectedFile();
  73.                          direccion_archivo.setText(archivo.getPath());
  74.                     }
  75.                 }                
  76.         };
  77.      
  78.         ActionListener accionCargar= new ActionListener(){
  79.             public void actionPerformed(ActionEvent arg0) {
  80.                 // TODO Auto-generated method stub
  81.                
  82.                 try{
  83.                     BufferedReader archivo1= new BufferedReader(new FileReader(direccion_archivo.getText()));
  84.                     String cadena;
  85.                     cadena=archivo1.readLine();
  86.                     if(conteo_tamanos_campos()==cadena.length()){
  87.                     while(cadena !=null){
  88.                         vector=new Vector();
  89.                         int posicion_inicial=0;
  90.                         for(int i=0;i<3;i++){
  91.                            dato=tabla_datos.getValueAt(i, 1);
  92.                            int valor_dato=Integer.parseInt(dato.toString());              
  93.                            vector.add(cadena.substring(posicion_inicial,valor_dato+posicion_inicial));
  94.                            posicion_inicial=valor_dato+posicion_inicial;  
  95.                         }
  96.                         modelo_tabla.addRow(vector);        
  97.                
  98.                         cadena=archivo1.readLine();
  99.                     }
  100.                     archivo1.close();
  101.                     }else{
  102.                         JOptionPane.showMessageDialog(panelPrincipal,"Tamano campos incorrectos.");
  103.                     }
  104.                 }catch(FileNotFoundException a){
  105.                     JOptionPane.showMessageDialog(panelPrincipal,"No existe archivo.");
  106.                 } catch (IOException e) {  
  107.                     e.printStackTrace();
  108.                 }
  109.                
  110.             }
  111.     };
  112.            
  113.    
  114.            
  115.            
  116.              etiqueta_archivo=new JLabel("Archivo");
  117.              direccion_archivo =new JTextField(25);
  118.              boton_buscar=new JButton("Buscar");
  119.             boton_buscar.addActionListener(accionBuscar);
  120.              
  121.              panel1.add(etiqueta_archivo);
  122.              panel1.add(direccion_archivo);
  123.              panel1.add(boton_buscar);
  124.              
  125.              String[] nombre_columnas={"Campo","Tamano campo"};
  126.              Object[][] datos={{"Codigo",""},{"Nombre",""},{"Telefono",""}};
  127.              tabla_datos=new JTable(datos,nombre_columnas);
  128.              tabla_datos.getColumnModel().getColumn(1).setPreferredWidth(100);
  129.              tabla_datos.getTableHeader().setReorderingAllowed(false);
  130.              panel_auxiliar=new JPanel();
  131.              panel_auxiliar.setLayout(new BorderLayout());
  132.              panel_auxiliar.add(tabla_datos.getTableHeader(), BorderLayout.PAGE_START);
  133.              panel_auxiliar.add(tabla_datos, BorderLayout.CENTER);
  134.              boton_cargar=new JButton("Cargar");
  135.              boton_cargar.addActionListener(accionCargar);
  136.                
  137.              panel2.add(panel_auxiliar);
  138.              panel2.add(boton_cargar);
  139.              
  140.              
  141.              tabla_datos2=new JTable();
  142.              modelo_tabla=new DefaultTableModel();
  143.              modelo_tabla.addColumn("Codigo");
  144.              modelo_tabla.addColumn("Nombre");
  145.              modelo_tabla.addColumn("Telefono");
  146.              
  147.            
  148.              tabla_datos2.setModel(modelo_tabla);
  149.              tabla_datos2.getTableHeader().setReorderingAllowed(false);
  150.              
  151.              
  152.              JScrollPane scroll1=new JScrollPane(tabla_datos2);
  153.              panel3.add(scroll1);
  154.              
  155.              panel4.add(new JLabel("By Diego Chapman"));
  156.              
  157.              panelPrincipal.add(panel1);
  158.              panelPrincipal.add(panel2);
  159.              panelPrincipal.add(panel3);
  160.              panelPrincipal.add(panel4);
  161.              
  162.          
  163.         }
  164.        
  165.         public int conteo_tamanos_campos(){
  166.             int total=0;
  167.             for(int i=0;i<3;i++){
  168.                Object objeto_dato=tabla_datos.getValueAt(i, 1);
  169.                int valor_dato=Integer.parseInt(objeto_dato.toString());
  170.                total+=valor_dato;
  171.             }return total;
  172.          }
  173.  
  174.      
  175.    
  176. }
  177.  
  178.  

gophlb

  • Visitante
Re: Mi applet no funciona
« Respuesta #4 en: Domingo 25 de Octubre de 2009, 18:04 »
0
yo asi de primeras te diria que en el code de applet (en el html) tienes que quitar el .class (no el nombre de la clase) y añadirle antes la ruta completa del package

es decir, que si tu clase esta en el package com.misApplet y se llama Applet.class, deberas poner en el code:
code='com.misApplet.Applet'

espero que al menos eso sirva para que furrule. seguire echando un vistazo a ver si veo algo mas :D


ademas de eso, yo tengo por ahi una pagina para un applet y la tengo definida asi:

Código: Text
  1. <HTML>
  2. <HEAD>
  3.    <TITLE>.</TITLE>
  4. </HEAD>
  5. <BODY>
  6. <APPLET
  7.         code="aplicacion.principal.Applet"  <- LA CLASE QUE EXTIENDE APPLET CON SU PACKAGE Y SIN EL .CLASS
  8.         codeBase="../jar/"                       <- DIRECCION RELATIVA A ESTA PAGINA HTML, DONDE TENGO MIS JAR
  9.         archive="applet.jar,tinylaf.jar"     <- JARS QUE NECESITES Y QUE ESTAN EN ../JAR
  10.         width="1000px"
  11.         height="750px"/>
  12.  
  13. </BODY>
  14. </HTML>
  15.  
  16.  

digichap28

  • Miembro activo
  • **
  • Mensajes: 64
    • Ver Perfil
Re: Mi applet no funciona
« Respuesta #5 en: Lunes 26 de Octubre de 2009, 00:11 »
0
Gracias por responder.
Pero, respecto al codigo html no hay problema porque este esta guardado en la misma ubicacion que el .class, y por lo tanto no hay necesidad de darle la ubicacion completa para este caso.
Ademas, el applet se logra visualizar bn en el internet explorer y en el mozilla firefox. Lo unico que esta funcionando mal son las acciones para cada boton que como comentaba antes ya las he probado teniendo este pequeno programa como un .jar
Lo raro es que al presionar por ejemplo el boton buscar no me aparece nada,es como si no existiese la accion que por cierto ya esta agregada como pueden darse cuenta en el codigo.

La verdad me tiene cabezon  :hitcomp:  este problema, ya probe en otro pc y nada que funciona.
Se me ocurria que era un problema del browser que tiene deshabilitada algo relacionado con java, no se.

Bueno, saludos y espero que me logren ayudar con dicho problema.

gophlb

  • Visitante
Re: Mi applet no funciona
« Respuesta #6 en: Lunes 26 de Octubre de 2009, 15:22 »
0
Cita de: "digichap28"
Gracias por responder.
Pero, respecto al codigo html no hay problema porque este esta guardado en la misma ubicacion que el .class, y por lo tanto no hay necesidad de darle la ubicacion completa para este caso.
Ademas, el applet se logra visualizar bn en el internet explorer y en el mozilla firefox. Lo unico que esta funcionando mal son las acciones para cada boton que como comentaba antes ya las he probado teniendo este pequeno programa como un .jar
Lo raro es que al presionar por ejemplo el boton buscar no me aparece nada,es como si no existiese la accion que por cierto ya esta agregada como pueden darse cuenta en el codigo.

La verdad me tiene cabezon  :hitcomp:  este problema, ya probe en otro pc y nada que funciona.
Se me ocurria que era un problema del browser que tiene deshabilitada algo relacionado con java, no se.

Bueno, saludos y espero que me logren ayudar con dicho problema.
jejejej perdon, se me fue la cabeza a otra parte y me olvide de cual era tu pregunta real.

veo que andas mirando en el sistema de archivos. has comprobado si te da alguna excepcion? los applet tienen acceso restringido al sistema de ficheros (por seguridad) y si se quiere que accedan, hay que firmar los jar que accedan y/o (no recuerdo si era tambien necesario) modificar el java policy

ahora no puedo darte mas informacion porque estoy en el curro, mira por google a ver si sacas algo en claro por si acaso :)

digichap28

  • Miembro activo
  • **
  • Mensajes: 64
    • Ver Perfil
Re: Mi applet no funciona
« Respuesta #7 en: Lunes 26 de Octubre de 2009, 17:05 »
0
Citar
jejejej perdon, se me fue la cabeza a otra parte y me olvide de cual era tu pregunta real.
  Jeje no hay problema.

Bueno ahora gracias a tu ayuda veo que el prblema esta en las restricciones dispuestas para los applets y que en la pequena aplicacion que tengo esta entre el listado de dichas reglas de seguridad.
Ahora las preguntas serian, es posible evitar alguna restriccion? si es asi, como se hace?

Gracias!

digichap28

  • Miembro activo
  • **
  • Mensajes: 64
    • Ver Perfil
Re: Mi applet no funciona
« Respuesta #8 en: Lunes 26 de Octubre de 2009, 18:20 »
0
Acabo de revisar el java policy en mi aplicacion y tiene all permisson por lo que me imagino no debe tener ninguna restriccion.
Y respecto a lo de alguna excepcion, no me sale ninguna,por lo menos no la veo por ningun lado (donde debe salir esta si se esta ejecutando en el browser?).
saludos nuevamente.

gophlb

  • Visitante
Re: Mi applet no funciona
« Respuesta #9 en: Lunes 26 de Octubre de 2009, 18:42 »
0
Cita de: "digichap28"
Acabo de revisar el java policy en mi aplicacion y tiene all permisson por lo que me imagino no debe tener ninguna restriccion.
Y respecto a lo de alguna excepcion, no me sale ninguna,por lo menos no la veo por ningun lado (donde debe salir esta si se esta ejecutando en el browser?).
saludos nuevamente.
en firefox: herramientas - java console

en iexplorer soy incapaz de encontrar nada desde hace muchas versiones, asi que no tengo ni idea.

en cualquier caso, es probable que tengas que firmarlo (http://www.chuidiang.com/chuwiki/index. ... ar_Applets)

suerte ;)

digichap28

  • Miembro activo
  • **
  • Mensajes: 64
    • Ver Perfil
Re: Mi applet no funciona
« Respuesta #10 en: Martes 27 de Octubre de 2009, 00:11 »
0
UMMM ACABO DE VER LA EXCEPTION,  y sale acceso denegado, por lo tanto si habria que firmarlo como dices.
Bueno el problema ha sido resuelto aunque no lo he firmado, hice una prueba con una accion q me mandara un mensajito JOptionPane y si aparecio.
Asi que muchas gracias por tu colaboracion! y saludos.