Ayuda con 2 JFrame plz

Iniciado por visualfree, 23 Abril 2009, 07:08 AM

0 Miembros y 1 Visitante están viendo este tema.

visualfree

He creado 2 Frame y cada Frame con su panel correspondiente , cada Panel tiene 2 botones
Un boton deberia llamar a al Frame1 y el otro debria llamar al Frame2 y bueno esto es lo q no logro... se que con el metodo setVisible(true) o (false) se hace visible o no visible un frame... y nose como hacerlo y no quiero tener que llamar a otro Objeto sino trabajar con las Clases q ya tengo creadas , espero entiendan mi duda y les deje los eventos de los botones listos por si alguien sabe como hacerlo, espero alguna ayuda desde ya saludos...


import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
public class ejemplo{
public static void main(String[] args)
{
FrameUno ventana=new FrameUno();
ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}
}
class FrameUno extends JFrame{
public FrameUno()
{
setTitle("Ventana 1");
setVisible(true);
setSize(300,300);
PanelUno p1=new PanelUno();
add(p1);
}
}
class FrameDos extends JFrame{
public FrameDos()
{
setTitle("Ventana 2");
setSize(300,300);
PanelDos p2=new PanelDos();
add(p2);
}
}
class PanelUno extends JPanel{
JButton btnUno=new JButton("Ventana 1");
JButton btnDos=new JButton("Ventana 2");
public PanelUno()
{
setLayout(new GridLayout(1,2));
add(btnUno);add(btnDos);

OyenteUno o1=new OyenteUno();
btnUno.addActionListener(o1);
OyenteDos o2=new OyenteDos();
btnDos.addActionListener(o2);

}
class OyenteUno implements ActionListener{
public void actionPerformed(ActionEvent e)
{
JOptionPane.showMessageDialog(null,"btnUno");
}
}
class OyenteDos implements ActionListener{
public void actionPerformed(ActionEvent e)
{
JOptionPane.showMessageDialog(null,"btnDos");

}
}
}
class PanelDos extends JPanel{
JButton btnUno=new JButton("Ventana 1");
JButton btnDos=new JButton("Ventana 2");

public PanelDos()
{
setLayout(new GridLayout(1,2));
add(btnUno);add(btnDos);
OyenteUno o1=new OyenteUno();
btnUno.addActionListener(o1);
OyenteDos o2=new OyenteDos();
btnDos.addActionListener(o2);


}
class OyenteUno implements ActionListener{
public void actionPerformed(ActionEvent e)
{
JOptionPane.showMessageDialog(null,"btnUno");

}
}
class OyenteDos implements ActionListener{
public void actionPerformed(ActionEvent e)
{
JOptionPane.showMessageDialog(null,"btnDos");

}
}
}

brian_e

dime si entiendo bien... lo que quieres es superponer la ventana1 si tienes activa la ventana2 y viceversa??

brian_e

veras yo ya habia hecho un ejemplo para responderte, solo que lo hice antes de preguntarte a que te referias.

espero te sirva.


import javax.swing.*;
import java.awt.event.*;

public class Text1{
public static void main(String[] args)
{
JFrame ventana = new JFrame();
final iFrame frame1 = new iFrame("Ventana 1");
final iFrame frame2 = new iFrame("Ventana 2");
JButton bt1 = new JButton();
JButton bt2 = new JButton();
bt1.setBounds(0,0,50,25);
bt1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
frame1.setVisible(true);
}
});
bt2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
frame2.setVisible(true);
}
});
bt2.setBounds(0,25,50,25);

ventana.setLayout(null);
ventana.add(bt1);
ventana.add(bt2);
ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ventana.setBounds(0,0,300,300);
ventana.setVisible(true);
}
}
class iFrame extends JFrame{
public iFrame(String titulo)
{
setTitle(titulo);
setSize(300,300);
iPanel ipanel = new iPanel();
add(ipanel);
setLocationRelativeTo(null);
}
}
class iPanel extends JPanel{
JButton btnUno=new JButton();
JButton btnDos=new JButton();
ActionListener buttonListener = new ActionListener(){
public void actionPerformed(ActionEvent e){
if (e.getActionCommand().equals("boton1")){/*Accion*/}
if (e.getActionCommand().equals("boton2")){/*Accion*/}
}
};
public iPanel()
{ btnUno.setBounds(0,0,50,25);
btnUno.addActionListener(buttonListener);
btnUno.setActionCommand("boton1");
btnDos.setBounds(0,25,50,25);
btnDos.addActionListener(buttonListener);
btnDos.setActionCommand("boton2");

setLayout(null);
add(btnUno);
add(btnDos);
}

}




visualfree

Lo  que quiero es qyue si `pincho un boton se haga visible una ventana y la otra no visible y viceversa....

gracias.