Foros del Web » Programación para mayores de 30 ;) » Java »

Como pasar de swing a JApplet

Estas en el tema de Como pasar de swing a JApplet en el foro de Java en Foros del Web. Hola. Tengo un código en swing, y tengo que pasarle a JApplet. Los pasos que he seguido para hacer esta conversión son: -Poner extends JApplet. ...
  #1 (permalink)  
Antiguo 30/07/2011, 08:44
 
Fecha de Ingreso: marzo-2008
Mensajes: 197
Antigüedad: 13 años, 2 meses
Puntos: 3
Como pasar de swing a JApplet

Hola.
Tengo un código en swing, y tengo que pasarle a JApplet.
Los pasos que he seguido para hacer esta conversión son:
-Poner extends JApplet.
-No existe el main, y le he cambiado por init.
-El windowlistener no funciona, lógicamente ya que se ejecutará en un navegador, asi que le he quitado.
-Los JPanel, no funciona, asi que les he quitaod también, lo he puesto todo con contenedores.
-Para hacer los layout así:
Código HTML:
frame.getContentPane().setLayout(new GridLayout(4,1));
-Para meter los botones, label...:
Código HTML:
frame.getContentPane().add(boton);
Pero me sigue sin funcionar en el navegador, se crea otra ventana fuera del navegador,y no dentro.
Tengo un LookAndFeel, y no sé si puede ser por ello...

¿Qué más pasos hay que dar para cambiar el swing a JApplet?
Otra duda que tengo, ¿puedo crear dos frame? Es para poner dos layout.

Espero sus respuestas.
Muchas gracias
  #2 (permalink)  
Antiguo 30/07/2011, 09:12
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 13 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Como pasar de swing a JApplet

Hola,

Cita:
Iniciado por laOtra Ver Mensaje
...
-Los JPanel, no funciona, asi que les he quitaod también, lo he puesto todo con contenedores.
...
Creo que en parte allí esta el problema. Los JPanel funcionan correctamente dentro de un JApplet como dentro de un JFrame. Realmente podrías verlo de esta forma, lo que tienes que hacer es eliminar los JFrame completamente y poner todo dentro del JApplet, y la forma más simple es usando JPanel.

Cita:
Iniciado por laOtra Ver Mensaje
-Para hacer los layout así:
Código HTML:
frame.getContentPane().setLayout(new GridLayout(4,1));
-Para meter los botones, label...:
Código HTML:
frame.getContentPane().add(boton);
¿Que es frame en ese caso? Si frame es un JFrame seguirá apareciendo un JFrame en la pantalla, aunque lo llames desde el JApplet.

Cita:
Iniciado por laOtra Ver Mensaje
Otra duda que tengo, ¿puedo crear dos frame? Es para poner dos layout.
Tienes que eliminar todos los frames, por eso salen las ventanas. Acá tengo un ejemplo de como crear una aplicación que funciona tanto como JFrame como JApplet, usando solamente un JPanel para contener toda la aplicación.

Código Java:
Ver original
  1. /**
  2.  * La aplicación principal del juego Puzzle.
  3.  * Funciona tanto como un Applet como una aplicación Desktop.
  4.  * @author HackmanGT
  5.  */
  6. public class Puzzle extends javax.swing.JApplet {
  7.  
  8.     private static Panel panel;
  9.  
  10.     /**
  11.      * Aplicación principal.
  12.      * Inicializa el Applet.
  13.      */
  14.     @Override
  15.     public void init() {
  16.         super.init();
  17.         try {
  18.             javax.swing.SwingUtilities.invokeAndWait(new Runnable() {
  19.                 public void run() {
  20.                     initComponents();
  21.                 }
  22.             });
  23.         } catch (InterruptedException ex) {
  24.             System.err.println(ex.getMessage());
  25.         } catch (InvocationTargetException ex) {
  26.             ex.printStackTrace();
  27.         }
  28.     }
  29.  
  30.     /**
  31.      * Inicializa el componente.
  32.      */
  33.     private void initComponents() {
  34.         setBackground(java.awt.Color.WHITE);
  35.         setLayout(new java.awt.BorderLayout());
  36.         panel = new Panel();
  37.         add(panel);
  38.     }
  39.  
  40.     /**
  41.      * Aplicación principal.
  42.      * Inicializa el Frame.
  43.      * @param args los argumentos de la línea de comandos
  44.      */
  45.     public static void main(String[] args) {
  46.         javax.swing.SwingUtilities.invokeLater(new Runnable() {
  47.             public void run() {
  48.                 createAndShowGUI();
  49.             }
  50.         });
  51.     }
  52.  
  53.     /**
  54.      * Inicializa el componente.
  55.      */
  56.     private static void createAndShowGUI() {
  57.         javax.swing.JFrame frame = new javax.swing.JFrame();
  58.         frame.setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  59.         frame.setTitle(".: JPuzzle :.");
  60.         frame.setResizable(true);
  61.         frame.pack();
  62.         frame.setSize(640, 480);
  63.         frame.setLocationRelativeTo(null);
  64.         frame.add(new Panel());
  65.         frame.setVisible(true);
  66.     }
  67. }
Saludos,
  #3 (permalink)  
Antiguo 30/07/2011, 10:08
 
Fecha de Ingreso: marzo-2008
Mensajes: 197
Antigüedad: 13 años, 2 meses
Puntos: 3
Respuesta: Como pasar de swing a JApplet

Muchas gracias por responder.
Pero no le he entendido correctamente.

Yo tengo un JFrame:
Código HTML:
JFrame frame=new JFrame();
		frame.setLayout(null);
		frame.setBackground(Color.LIGHT_GRAY);
		frame.setBounds(0, 0, 700, 450);
Entonces según dice usted, tengo que eliminarle.

pero luego, los botones, label... en donde les agrego?
Porque por ejemplo, en el ejemplo que me pone, si que tiene un JFrame.
No he entendido bien...
Espero que puedan explicármelo..
Muchas gracias!
  #4 (permalink)  
Antiguo 30/07/2011, 13:59
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 13 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Como pasar de swing a JApplet

Hola,

Cita:
Iniciado por laOtra Ver Mensaje
Entonces según dice usted, tengo que eliminarle.
Usted está en la correcto .. :)

Lo que tienes que hacer es eliminar todas y cada una de las referencias a JFrame y todo lo que está dentro de los JFrame ponerlo dentro del JApplet. Es decir, el JFrame contiene botones, cajas de texto, imágenes, etc., todo eso lo tienes que poner dentro del applet, porque el JApplet es tu nuevo contenedor de 'cosas'.

Y por eso es mas fácil ponerlo todo dentro de un JPanel y agregar ese panel dentro del JApplet, así en cualquier momento puedes cambiarlo de aplicación de escritorio a applet y viceversa, como lo mostré en el ejemplo. (Por eso miras un JFrame todavía allí).

Saludos
  #5 (permalink)  
Antiguo 31/07/2011, 11:30
 
Fecha de Ingreso: marzo-2008
Mensajes: 197
Antigüedad: 13 años, 2 meses
Puntos: 3
Respuesta: Como pasar de swing a JApplet

Sí, exacto. Perfecto.
Es añadir todo a los paneles que creo, que eso lo suelo hacer así siempre.
Y luego agregar cada panel al JApplet, así:
Código HTML:
this.getContentPane().add(panel2, null);
Gracias!!!!!!!!!!!!

Etiquetas: pasar, swing
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 16:21.