Java - componentes de ventanas

 
Vista:

componentes de ventanas

Publicado por Rocio (14 intervenciones) el 31/08/2005 03:34:28
Hola he creado un menu desde el cual se abren diferentes ventanas. Mi problema es que la segunda vez que abro la misma ventana me aparecen en ella dos veces sus componentes, es decir los mostrados la primera vez mas la segunda.

Supongo que se debe a que no cierro bien la ventana o que no libero bien la memoria.
las ventanas las cierro con frame.hide(); y frame.dispose();
Si a alguien le suena este error agradeceria me lo comentase.

muchas gracias de antemano
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:componentes de ventanas

Publicado por Wilfredo Vargas Almendras (314 intervenciones) el 31/08/2005 04:46:38
Hola, lo interesante tambien seria ver como abres las ventanas, quizas con un new o de otra forma.. seria bueno que publiques tu codigo..
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:componentes de ventanas

Publicado por Rocio (14 intervenciones) el 31/08/2005 09:49:45
la ventana la abro de esta forma, donde JMI_Busca es uN JMenuItem y JB_Buscar es un JButton
if ((e.getSource()==JMI_Buscar) || (e.getSource()==JB_Buscar))
{
Busca ventanaBusca=new Busca();
ventanaBusca.creaGUIB();
}

en la clase Busca se ejecuta el siguiente codigo.
public static void creaGUIB()
{
String cad,fecha;

JFrame.setDefaultLookAndFeelDecorated(true);

fecha=fechaHoy();
cad="busca"+" "+fecha;
//JFrame
marcoBusca=new JFrame(cad);
marcoBusca.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);

marcoBusca.setIconImage(Toolkit.getDefaultToolkit().getImage(/logo.gif"));
marcoBusca.setContentPane(nuevaBusca.creaElementos());
marcoBusca.setSize(400,100);
marcoBusca.setLocation(200,200);
marcoBusca.setVisible(true);
}

public Container creaElementos()
{

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

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;
}

al pulsar cualquiera de los dos botones cierro la ventana como he indicado en la otra nota

Muchas gracias por ayudarme
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:componentes de ventanas

Publicado por Wilfredo Vargas Almendras (314 intervenciones) el 31/08/2005 15:40:24
Hola, como no tengo todo tu codigo no te puedo dar una solucion tan optima, sin embargo creo que lo siguiente te servira:

if ((e.getSource()==JMI_Buscar) || (e.getSource()==JB_Buscar))
{
// En vez de poner esto aqui, puedes hacer lo siguiente
Busca ventanaBusca=new Busca();
ventanaBusca.creaGUIB();
}

// Desde aqui

class TuClase extends OtraClase implements AlgunListener // quizas JFrame y /
//ActionListener
{

// Otros atributos

Busca ventanaBusca=new Busca();

public TuClase( ){
// Otras cosas
ventanaBusca.creaGUIB();
}

if ((e.getSource()==JMI_Buscar) || (e.getSource()==JB_Buscar))
{
ventanaBusca.setVisible(true);
}

}

Lo demas lo mantienes.. espero te dirva de ayuda...
SALUDOS Wilfredo Vargas Almendras
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:componentes de ventanas

Publicado por rocio (14 intervenciones) el 31/08/2005 18:45:08
Muchisimas gracias, me ha servido de mucha ayuda. lo unico que en lugar de poner ventanaBusca.serVisible(true) como la ventana de buscar la abre y la minimiza, cuando se selecciones esa opcion en el menu la maximizo o la traigo al frente.

gracias de nuevo
besitos
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