Java - Pesadilla con ventanas

 
Vista:

Pesadilla con ventanas

Publicado por Rocio (14 intervenciones) el 08/08/2005 12:45:54
Hola soy nueva en esto de programar en Java y necesito ayuda. Tengo una ventana de la que se pueden abrir otras ventanas como por ejemplo la que os indico a continuacion y quiero que cuando se termine de utilizar una ventana se cierre sólo esa y no todas a la vez. He probado con dispose , con setVisible(false) pero no me hace caso.

import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import javax.swing.*;
import java.util.*;
import java.text.*;
import java.io.*;

public class Busca extends JFrame implements ActionListener
{
JButton JB_Aceptar;
JButton JB_Cancelar;

public Container creaElementos()
{

JLabel JL_DNI=new JLabel("Introduzca el DNI del cliente a buscar ");

JTextField JTF_DNI=new JTextField(9);

JB_Aceptar=new JButton("Aceptar");
JB_Aceptar.addActionListener(this);

JB_Cancelar=new JButton("Cancelar");
JB_Cancelar.addActionListener(this);

JPanel JP_Busca1=new JPanel();
JP_Busca1.setLayout(new FlowLayout());
JP_Busca1.add(JL_DNI);
JP_Busca1.add(JTF_DNI);

JPanel JP_Busca2=new JPanel();
JP_Busca2.setLayout(new FlowLayout());
JP_Busca2.add(JB_Aceptar);
JP_Busca2.add(JB_Cancelar);

Container contenedorBuscar=getContentPane();
contenedorBuscar.setLayout(new GridLayout(2,4));
contenedorBuscar.add(JP_Busca1);
contenedorBuscar.add(JP_Busca2);

return contenedorBuscar;
}

public void cerrar()
{
setVisible(false);
dispose();
}

public void actionPerformed(ActionEvent e)
{
if (e.getSource()==JB_Aceptar)
{
}
if(e.getSource()==JB_Cancelar)
{
cerrar();
}
}

public static String fechaHoy()
{
Date hoy=new Date();
String hoyStr=DateFormat.getDateTimeInstance().format(hoy);
return hoyStr;
}

public static void creaGUIB()
{
String cad,fecha;

JFrame.setDefaultLookAndFeelDecorated(true);

fecha=fechaHoy();
cad="UNEF"+" "+fecha;
JFrame marcoBusca=new JFrame(cad);
marcoBusca.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Busca nuevaBusca=new Busca();
marcoBusca.setIconImage(Toolkit.getDefaultToolkit().getImage("C:/Documents and Settings/Rocio/Mis documentos/rocio/Universidad/lab.tecnologia de la progamacion/practica_septiembre/Entidad_Financiera/Entidad_Financiera/dibujos/logo.gif"));

marcoBusca.setContentPane(nuevaBusca.creaElementos());

marcoBusca.setSize(400,100);
marcoBusca.setLocation(200,200);
marcoBusca.setVisible(true);

}
}

Muchas Gracia por ayudarme
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Pesadilla con ventanas

Publicado por camc (1 intervención) el 08/08/2005 15:01:24
Hat a ser tu metodo cerrar:
setVisible(false);
dispose();
le estas dando la instruccion que te cierre la ventana principal y por ende con ello tambien los frames que estan contenidos en esta.

te podria a consejar que a tu metodo cerrar le mandes como paramentro el JFrame que en ese momento estas ocupando o que simplemente quieres cerrar con la accion de un botona ..

public void cerrar(JFrame frame){
frame.hide();// igual que frame.setVisible(false) para ocultar la ventana
frame.dispose(); //para eleiminar la referencia a memoria de la ventana
}

ya que al herredar tu BUscar de JFrame implica que todos sus metodos seran pararte de tu ventana. y si le haces todo con referencia a esta, todos esto afectara a ella..

setContenPane();
setVisible();
setBounds();
dispose() etc...

Suerte y espero que sea lo que necesitas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Pesadilla con ventanas

Publicado por Rocio (14 intervenciones) el 08/08/2005 18:49:12
Muchisimas gracias me ha sido de muchisima ayuda. No habia caido en ese gran detalle
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar