Mostrar Frame

eduardo
18 de Febrero del 2005
Hola, queria saber como puedo hacer que desde el evento de un boton oculte un formulario y muestre otro.
He probado desde el metodo actionPerformed del boton pero no me deja hacer llamadas al segundo frame. Haber si alguien me puede decir como hacerlo

chuidiang
18 de Febrero del 2005
Hola:

Puedes hacerlo. Es cuestión de que pongas el segundo Frame visibel desde el action performed.

Según como lo uses, el JFrame es posible que deba ser declarado final

final JFrame ventana = new JFrame (...);

Otra opción es que hagas la clase de accion que herede de ActionListenrer, con un constructor en el que recibas el segundo frame y te lo guardes como atributo de la clase. En el metodo actionPerformed() ya lo tendrías accesible.

En fin, hay muchas formas. Si sigues teniendo problemas, vuelve a escribir.

Se bueno.

pllamosas
18 de Febrero del 2005
Hmm, para cerrar una ventana simplemente debes llamar al metodo "dispose()" de tu primera ventana, y para que cree otra simeplemente le das "new MyOtraVentana()" en el metodo "actionPerformed()".

A ver, doy un ejemplo; este codigo va a crear una ventana y luego cierra la que hizo la accion.

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

public class JFrameTest extends JFrame {
/*
Creas tu boton. Yo uso frecuentemente clases internas,
pero si desean solo llamen a la referencia y que haga
lo que quieren, algo asi:
JButton boton = new JButton();
boton.setText("Click!");
MyActionListener myAction = new MyActionListener(); //clase aparte o interna, como quieran
boton.addActionListener(myAction);
*/
final JButton boton = new JButton() {
{
setText("Click!");
addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Action(e); //llamando a la accion
}
});
}
};

//Nuestro constructor
public JFrameTest() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
getContentPane().add(boton);
//algo random pues, no queremos que salga en un solo lugar
setBounds((int)(Math.random()*100+100), (int)(Math.random()*100+100), 200, 100);
show();
}

//la accion powa, deben llamarla desde la accion de su boton
public void Action(ActionEvent e) {
new JFrameTest(); //crea una nueva ventana
this.dispose(); //dispone la actual (la cierra)
}

public static void main(String args[]) {
new JFrameTest();
}
}

pllamosas
18 de Febrero del 2005
eww, sin formato... bleh que se le va a hacer...