elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Ayuda Porfavor...
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda Porfavor...  (Leído 1,963 veces)
visualfree

Desconectado Desconectado

Mensajes: 201


Ver Perfil
Ayuda Porfavor...
« en: 27 Abril 2009, 09:32 am »

Mi duda es la siguiente, hice 2 codigos uno que hace lo que quiero y el otro que quiero que haga lo mismo que el primer codigo , solo que esta en clases separadas..

Lo que hace el primer codigo , es que tiene un menu y tiene 2 opciones mostrar ventana 1 y mostrar ventana 2 y hace lo que tiene que hacer,  ahora hice otro codigo  pero las clases estan separadas , entonces nose como hacer lo mismo que el primer codigo...

Aca le dejo los 2 codigos espero de su ayuda Saludos..

CODIGO 1.
Código
  1. import java.awt.event.*;
  2. import java.awt.*;
  3. import javax.swing.*;
  4. public class prueba{
  5. public static void main(String[] args)
  6. {
  7. Ventana ven=new Ventana();
  8. ven.setVisible(true);
  9. }
  10. }
  11. class Ventana extends JFrame{
  12. JPanel pn1=new JPanel();
  13. JButton btn1=new JButton("Boton ventana 1");
  14. JFrame VentanaDos=new JFrame();
  15. JPanel pn2=new JPanel();
  16. JButton btn2=new JButton("Boton ventana 2");
  17. JFrame VentanaTres=new JFrame();
  18. JPanel pn3=new JPanel();
  19. JButton btn3=new JButton("Boton ventana 3");
  20. JMenuBar mnu=new JMenuBar();
  21. JMenu barra=new JMenu("Archivo");
  22. JMenuItem item=new JMenuItem("Ventana2");
  23. JMenuItem item2=new JMenuItem("Ventana3");
  24. public Ventana()
  25. {
  26.  
  27. mnu.add(barra);
  28. barra.add(item);
  29. barra.add(item2);
  30. VentanaDos.setTitle("Ventana2");
  31. VentanaDos.setSize(200,300);
  32. VentanaDos.add(pn2);
  33. VentanaTres.setTitle("Ventana3");
  34. VentanaTres.setSize(200,300);
  35. VentanaTres.add(pn3);
  36. pn3.setLayout(new BorderLayout());
  37. pn3.add(btn3,BorderLayout.CENTER);
  38. pn2.setLayout(new BorderLayout());
  39. pn2.add(btn2,BorderLayout.CENTER);
  40. pn1.setLayout(new BorderLayout());
  41. pn1.add(mnu,BorderLayout.NORTH);
  42. pn1.add(btn1,BorderLayout.CENTER);
  43. setTitle("Ventana1");
  44. add(pn1);
  45. setSize(200,300);
  46. OyenteUno o1=new OyenteUno();
  47. item.addActionListener(o1);
  48. OyenteDos o2=new OyenteDos();
  49. item2.addActionListener(o2);
  50. }
  51. class OyenteUno implements ActionListener{
  52. public void actionPerformed(ActionEvent e)
  53. {
  54. VentanaDos.setVisible(true);
  55. }
  56.  
  57.  
  58. }
  59. class OyenteDos implements ActionListener{
  60. public void actionPerformed(ActionEvent e)
  61. {
  62.  
  63. VentanaTres.setVisible(true);
  64. }
  65.  
  66.  
  67.  
  68. }
  69.  
  70. }
  71.  


CODIGO 2 "en este codigo no puedo hacer q haga lo mismo que el primer codigo"
Código
  1. import java.awt.event.*;
  2. import javax.swing.*;
  3. import java.awt.*;
  4. public class ejemplo{
  5. public static void main(String[] args)
  6. {
  7. Ventana ven=new Ventana();
  8. ven.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  9.  
  10. }
  11. }
  12. class Ventana extends JFrame{
  13. public Ventana()
  14. {
  15. setTitle("Ventana 1");
  16. setVisible(true);
  17. setSize(300,300);
  18. PanelUno p1=new PanelUno();
  19. add(p1);
  20. }
  21. }
  22. class VentanaDos extends JFrame{
  23. public VentanaDos()
  24. {
  25. setTitle("Ventana 2");
  26. setSize(300,300);
  27. PanelDos p2=new PanelDos();
  28. add(p2);
  29. }
  30. }
  31. class VentanaTres extends JFrame{
  32. public VentanaTres()
  33. {
  34. setTitle("Ventana 3");
  35. setSize(300,300);
  36. PanelTres p3=new PanelTres();
  37. add(p3);
  38.  
  39.  
  40. }
  41.  
  42. }
  43. class PanelUno extends JPanel{
  44. JButton btnUno=new JButton("Ventana 1");
  45. JMenuBar mnu=new JMenuBar();
  46. JMenu barra=new JMenu("Archivo");
  47. JMenuItem item=new JMenuItem("Ventana 2");
  48. JMenuItem item2=new JMenuItem("Ventana 3");
  49. public PanelUno()
  50. {
  51. mnu.add(barra);
  52. barra.add(item);
  53. barra.add(item2);
  54. setLayout(new BorderLayout());
  55. add(mnu,BorderLayout.NORTH);
  56. add(btnUno,BorderLayout.CENTER);
  57. OyenteUno o1=new OyenteUno();
  58.                item.addActionListener(o1);
  59.                OyenteDos o2=new OyenteDos();
  60.                item2.addActionListener(o2);
  61.  
  62. }
  63. class OyenteUno implements ActionListener{
  64.                public void actionPerformed(ActionEvent e)
  65.                {
  66.                  System.out.println("Mostrar Ventana 2");
  67.                }
  68.  
  69.  
  70.        }
  71.        class OyenteDos implements ActionListener{
  72.                public void actionPerformed(ActionEvent e)
  73.                {
  74.  
  75.                        System.out.println("Mostrar Ventana 3");
  76.                }
  77.  
  78.  
  79.  
  80.        }
  81.  
  82.  
  83.  
  84. }
  85. class PanelDos extends JPanel{
  86. JButton btnUno=new JButton("Ventana 2");
  87. public PanelDos()
  88. {
  89. setLayout(new BorderLayout());
  90. add(btnUno,BorderLayout.NORTH);
  91. }
  92. }
  93. class PanelTres extends JPanel{
  94. JButton btnTres=new JButton("Ventana 3");
  95. public PanelTres()
  96. {
  97. setLayout(new BorderLayout());
  98. add(btnTres,BorderLayout.CENTER);
  99.  
  100.  
  101. }
  102.  
  103. }
  104.  


« Última modificación: 27 Abril 2009, 09:35 am por visualfree » En línea

er_rafael_rafi

Desconectado Desconectado

Mensajes: 27



Ver Perfil
Re: Ayuda Porfavor...
« Respuesta #1 en: 2 Mayo 2009, 18:21 pm »

Dentro de la clase Ventana deberias poner
 
Código
  1. class Ventana extends JFrame{
  2.        Jpanel panel;
  3. public Ventana()
  4. {
  5. setTitle("Ventana 1");
  6. setVisible(true);
  7. setSize(300,300);
  8. panel=new PanelUno();;
  9. add(panel);
  10. }
  11.  
  12.        void setPanel(JPanel p){
  13.                this.panel=p;
  14.        }
  15. }
Y dentro de los oyentes deberias de poner:
Código
  1. class OyenteUno implements ActionListener{
  2.                Ventana ventana;
  3.                oyenteUno(Ventana v){
  4.                          this.ventana=v;
  5.                }
  6.  
  7.                public void actionPerformed(ActionEvent e)
  8.                {
  9.                  ventana.setPanel(new VentanaDos());
  10.                }
  11.  
  12.  
  13.        }
Lo mismo con el otro ayente pero mandandole la otra ventana.
Recuerda que aora tus oyentes reciben una ventana con el constructor para saber con que ventana van asociada...
Espero que te haya resuelto alguna duda
Saludos....


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines