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.
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
public class prueba{
public static void main
(String[] args
) {
Ventana ven=new Ventana();
ven.setVisible(true);
}
}
public Ventana()
{
mnu.add(barra);
barra.add(item);
barra.add(item2);
VentanaDos.setTitle("Ventana2");
VentanaDos.setSize(200,300);
VentanaDos.add(pn2);
VentanaTres.setTitle("Ventana3");
VentanaTres.setSize(200,300);
VentanaTres.add(pn3);
setTitle("Ventana1");
add(pn1);
setSize(200,300);
OyenteUno o1=new OyenteUno();
item.addActionListener(o1);
OyenteDos o2=new OyenteDos();
item2.addActionListener(o2);
}
{
VentanaDos.setVisible(true);
}
}
{
VentanaTres.setVisible(true);
}
}
}
CODIGO 2 "en este codigo no puedo hacer q haga lo mismo que el primer codigo"
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
public class ejemplo{
public static void main
(String[] args
) {
Ventana ven=new Ventana();
ven.
setDefaultCloseOperation(JFrame.
EXIT_ON_CLOSE);
}
}
public Ventana()
{
setTitle("Ventana 1");
setVisible(true);
setSize(300,300);
PanelUno p1=new PanelUno();
add(p1);
}
}
class VentanaDos
extends JFrame{ public VentanaDos()
{
setTitle("Ventana 2");
setSize(300,300);
PanelDos p2=new PanelDos();
add(p2);
}
}
class VentanaTres
extends JFrame{ public VentanaTres()
{
setTitle("Ventana 3");
setSize(300,300);
PanelTres p3=new PanelTres();
add(p3);
}
}
class PanelUno
extends JPanel{ public PanelUno()
{
mnu.add(barra);
barra.add(item);
barra.add(item2);
OyenteUno o1=new OyenteUno();
item.addActionListener(o1);
OyenteDos o2=new OyenteDos();
item2.addActionListener(o2);
}
{
System.
out.
println("Mostrar Ventana 2"); }
}
{
System.
out.
println("Mostrar Ventana 3"); }
}
}
class PanelDos
extends JPanel{ public PanelDos()
{
}
}
class PanelTres
extends JPanel{ public PanelTres()
{
}
}
Dentro de la clase Ventana deberias poner
Jpanel panel;
public Ventana()
{
setTitle("Ventana 1");
setVisible(true);
setSize(300,300);
panel=new PanelUno();;
add(panel);
}
this.panel=p;
}
}
Y dentro de los oyentes deberias de poner:
Ventana ventana;
oyenteUno(Ventana v){
this.ventana=v;
}
{
ventana.setPanel(new VentanaDos());
}
}
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....