Problemas para cerrar las ventanas

Problemas
21 de Diciembre del 2004
Hola de nuevo. A ver si alguien me dice como cerrar una ventana pero no toda la aplicacion.
Estoy haciendo el entorno grafico con el Jbuilder y para cada ventana tengo una clase entonces no se como darle para que la ventanabuscar de la clase buscar se cierre por ejemplo con la ventana atencion de la clase borrar. No se si me explico. A ver si alguien sabe y me agrega al messenger para pasarle las clases y me diga como hacerlo. Es que no se como explicarlo. El codigo seria este:

La clase principal:

import javax.swing.*;
import java.awt.Rectangle;
import java.awt.Color;
import java.awt.event.*;
import javax.swing.border.*;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/

public class principal extends JPanel {

JLabel jLabel1 = new JLabel();
JLabel jLabel2 = new JLabel();
JButton jButton1 = new JButton();
JButton jButton2 = new JButton();
JButton jButton3 = new JButton();
JButton jButton4 = new JButton();
JButton jButton5 = new JButton();
TitledBorder titledBorder1;
public principal() {
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}


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



JFrame primero = new JFrame("Buscador R.A.J.");
primero.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {System.exit(0);}
});

primero.getContentPane().add(new principal());
primero.pack();
primero.setSize(400,350);
primero.setResizable(false);
primero.setVisible(true);

}

private void jbInit() throws Exception {
titledBorder1 = new TitledBorder("");
setLayout(null);
jLabel1.setBounds(new Rectangle(27, 24, 144, 68));
jLabel1.setIcon(new ImageIcon("c:/uco.gif"));
jLabel1.setText("");
jLabel2.setBounds(new Rectangle(162, 37, 214, 54));
jLabel2.setIcon(new ImageIcon("c:/Dibujo.jpg"));
jLabel2.setText("");
jButton1.setBackground(new Color(201, 55, 69));
jButton1.setBounds(new Rectangle(41, 130, 96, 28));
jButton1.setFont(new java.awt.Font("Dialog", 1, 13));
jButton1.setForeground(Color.white);
jButton1.setBorder(BorderFactory.createLineBorder(Color.black));
jButton1.setText("Buscar");
jButton1.addActionListener(new principal_jButton1_actionAdapter(this));
jButton2.setBackground(new Color(201, 55, 69));
jButton2.setBounds(new Rectangle(41, 170, 96, 28));
jButton2.setFont(new java.awt.Font("Dialog", 1, 13));
jButton2.setForeground(Color.white);
jButton2.setText("Añadir");
jButton2.addActionListener(new principal_jButton2_actionAdapter(this));
jButton3.setBackground(new Color(201, 55, 69));
jButton3.setBounds(new Rectangle(41, 210, 96, 28));
jButton3.setFont(new java.awt.Font("Dialog", 1, 13));
jButton3.setForeground(Color.white);
jButton3.setDebugGraphicsOptions(0);
jButton3.setText("Ayuda");
jButton3.addActionListener(new principal_jButton3_actionAdapter(this));
jButton4.setBackground(new Color(214, 255, 255));
jButton4.setBounds(new Rectangle(295, 202, 59, 45));
jButton4.setForeground(Color.white);
jButton4.setBorder(null);
jButton4.setBorderPainted(true);
jButton4.setIcon(new ImageIcon("c:/info.gif"));
jButton4.setText("");
jButton4.addActionListener(new principal_jButton4_actionAdapter(this));

jButton5.setBackground(new Color(201, 55, 69));
jButton5.setBounds(new Rectangle(41, 250, 96, 28));
jButton5.setFont(new java.awt.Font("Dialog", 1, 13));
jButton5.setForeground(Color.white);
jButton5.setBorder(BorderFactory.createLineBorder(Color.black));
jButton5.setText("Salir");
jButton5.addActionListener(new principal_jButton5_actionAdapter(this));
jButton5.addActionListener(new principal_jButton5_actionAdapter(this));

this.setBackground(new Color(214, 255, 255));
this.add(jLabel1, null);
this.add(jLabel2, null);
this.add(jButton1, null);
this.add(jButton3, null);
this.add(jButton2, null);
this.add(jButton4, null);
this.add(jButton5, null);
}

void jButton4_actionPerformed(ActionEvent e) {
JFrame info = new JFrame("A cerca de ...");

info.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {System.runFinalization();}
});

info.getContentPane().add(new acercade());
info.pack();
info.setSize(400,350);
info.setResizable(false);
info.setVisible(true);


}

void jButton1_actionPerformed(ActionEvent e) {
JFrame ventanabuscar = new JFrame("Buscar");

ventanabuscar.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {System.runFinalization();}
});

ventanabuscar.getContentPane().add(new buscar());
ventanabuscar.pack();
ventanabuscar.setSize(460,520);
ventanabuscar.setResizable(false);
ventanabuscar.setVisible(true);

}

void jButton2_actionPerformed(ActionEvent e) {
JFrame ventanaanadir = new JFrame("Añadir");

ventanaanadir.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {System.runFinalization();}
});

ventanaanadir.getContentPane().add(new anadir());
ventanaanadir.pack();
ventanaanadir.setSize(530,500);
ventanaanadir.setResizable(false);
ventanaanadir.setVisible(true);

}

void jButton5_actionPerformed(ActionEvent e) {
System.exit(0);
}

void jButton3_actionPerformed(ActionEvent e) {

}

}

class principal_jButton4_actionAdapter implements java.awt.event.ActionListener {
principal adaptee;

principal_jButton4_actionAdapter(principal adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton4_actionPerformed(e);
}
}

class principal_jButton1_actionAdapter implements java.awt.event.ActionListener {
principal adaptee;

principal_jButton1_actionAdapter(principal adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton1_actionPerformed(e);
}
}

class principal_jButton2_actionAdapter implements java.awt.event.ActionListener {
principal adaptee;

principal_jButton2_actionAdapter(principal adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton2_actionPerformed(e);
}
}

class principal_jButton5_actionAdapter implements java.awt.event.ActionListener {
principal adaptee;

principal_jButton5_actionAdapter(principal adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton5_actionPerformed(e);
}
}

class principal_jButton3_actionAdapter implements java.awt.event.ActionListener {
principal adaptee;

principal_jButton3_actionAdapter(principal adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton3_actionPerformed(e);
}
}




La clase buscar:

import javax.swing.*;
import java.awt.Rectangle;
import java.awt.event.*;
import java.awt.Color;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/

public class buscar extends JPanel {
JLabel jLabel1 = new JLabel();
JLabel jLabel2 = new JLabel();
JCheckBox jCheckBox1 = new JCheckBox();
JCheckBox jCheckBox2 = new JCheckBox();
JLabel jLabel3 = new JLabel();
JLabel jLabel4 = new JLabel();
JTextField jTextField1 = new JTextField();
JButton jButton1 = new JButton();
JButton jButton2 = new JButton();
JButton jButton4 = new JButton();
JList jList1 = new JList();
JTextField jTextField2 = new JTextField();
JButton jButton3 = new JButton();
public buscar() {
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
buscar buscar1 = new buscar();
}
private void jbInit() throws Exception {
setLayout(null);
jLabel1.setText("");
jLabel1.setIcon(new ImageIcon("c:/uco.gif"));
jLabel1.setBounds(new Rectangle(25, 30, 144, 68));
jLabel2.setBounds(new Rectangle(187, 35, 211, 54));
jLabel2.setIcon(new ImageIcon("c:/Dibujo.jpg"));
jLabel2.setText("");
jCheckBox1.setBackground(new Color(201, 55, 69));
jCheckBox1.setForeground(Color.white);
jCheckBox1.setText("jCheckBox1");
jCheckBox1.setBounds(new Rectangle(34, 142, 21, 17));
jCheckBox2.setBackground(new Color(201, 55, 69));
jCheckBox2.setForeground(Color.white);
jCheckBox2.setBorder(null);
jCheckBox2.setText("jCheckBox2");
jCheckBox2.setBounds(new Rectangle(178, 141, 21, 18));
jLabel3.setForeground(Color.orange);
jLabel3.setText("Por Palabras Clave");
jLabel3.setBounds(new Rectangle(59, 142, 118, 14));
jLabel4.setForeground(Color.orange);
jLabel4.setText("Por Resumen");
jLabel4.setBounds(new Rectangle(202, 143, 83, 14));
jTextField1.setText("Introduzca la busqueda");
jTextField1.setBounds(new Rectangle(37, 174, 281, 25));
jButton1.setBackground(new Color(201, 55, 69));
jButton1.setBounds(new Rectangle(325, 174, 81, 25));
jButton1.setFont(new java.awt.Font("Dialog", 1, 13));
jButton1.setForeground(Color.white);
jButton1.setText("Buscar");

this.setBackground(new Color(214, 255, 255));
this.setForeground(Color.white);

jButton2.setText("Borrar");
jButton2.addActionListener(new buscar_jButton2_actionAdapter(this));

jButton2.setForeground(Color.white);
jButton2.setBounds(new Rectangle(253, 438, 100, 30));
jButton2.setBackground(new Color(201, 55, 69));

jButton4.setText("Modificar");

jButton4.setForeground(Color.white);
jButton4.setBounds(new Rectangle(96, 438, 100, 30));
jButton4.setBackground(new Color(201, 55, 69));
jList1.setBounds(new Rectangle(36, 224, 392, 136));
jList1.setBorder(BorderFactory.createLineBorder(Color.black));
jTextField2.setBounds(new Rectangle(36, 385, 245, 24));
jTextField2.setText("Introduzca la busqueda");

jButton3.setText("Busqueda anidada");

jButton3.setForeground(Color.white);
jButton3.setBounds(new Rectangle(292, 381, 139, 30));
jButton3.setBackground(new Color(201, 55, 69));
this.add(jLabel1, null);
this.add(jLabel2, null);
this.add(jCheckBox1, null);
this.add(jLabel3, null);
this.add(jCheckBox2, null);
this.add(jLabel4, null);
this.add(jTextField1, null);
this.add(jButton1, null);
this.add(jList1, null);
this.add(jTextField2, null);
this.add(jButton3, null);
this.add(jButton4, null);
this.add(jButton2, null);
}

void jButton2_actionPerformed(ActionEvent e) {
JFrame atencion = new JFrame("Buscar");

atencion.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {System.runFinalization();}
});

atencion.getContentPane().add(new borrar());
atencion.pack();
atencion.setSize(400,200);
atencion.setResizable(false);
atencion.setVisible(true);

}


}

class buscar_jButton2_actionAdapter implements java.awt.event.ActionListener {
buscar adaptee;

buscar_jButton2_actionAdapter(buscar adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton2_actionPerformed(e);
}
}



Y la clase borrar:


import javax.swing.*;
import java.*;
import java.awt.Rectangle;
import java.awt.event.*;
import java.awt.Color;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/

public class borrar extends JPanel {
JLabel jLabel1 = new JLabel();
JButton jButton1 = new JButton();
JButton jButton2 = new JButton();
public borrar() {
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
borrar borrar1 = new borrar();
}
private void jbInit() throws Exception {

setLayout(null);
jLabel1.setFont(new java.awt.Font("Dialog", 1, 13));
jLabel1.setText("¿Desea borrar la referencia de este archivo?");
jLabel1.setBounds(30,20,300,20);


jButton1.setFont(new java.awt.Font("Dialog", 1, 13));
jButton1.setForeground(Color.white);
jButton1.setText("Aceptar");
jButton1.setBackground(new Color(201, 55, 69));
jButton1.setBounds(60,60,100,30);


jButton2.setBackground(new Color(201, 55, 69));
jButton2.setBounds(200,60,100,30);
jButton2.setFont(new java.awt.Font("Dialog", 1, 13));
jButton2.setForeground(Color.white);
jButton2.setText("Cancelar");
jButton2.addActionListener(new borrar_jButton2_actionAdapter(this));


this.setBackground(new Color(214, 255, 255));
this.add(jLabel1, null);
this.add(jButton1, null);
this.add(jButton2, null);


}

void jButton2_actionPerformed(ActionEvent e) {



}

}

class borrar_jButton2_actionAdapter implements java.awt.event.ActionListener {
borrar adaptee;

borrar_jButton2_actionAdapter(borrar adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton2_actionPerformed(e);
}
}



A ver como cierro la ventana de borrar. Y como seria para todas las demas pq sera lo mismo ¿no?

Muchas gracias por todo

Tigre Negro
21 de Diciembre del 2004
Lo que te entiendo es que quieres cerrar una ventana desde otra clase ajena a ella y que no te cierre toda la aplicacion. Ocultala: ventana.hide();

Eso hara que la ventana desaparezca pero no destruye el componente por lo que no te liberara memoria, cuando la abras de nuevo solo tendrias que hacerlo con show --- ventana.show();

Espero te sirva
Saludos

problemas
21 de Diciembre del 2004
Mas o menos es eso, pero mi ventana la declaro asi;
JFrame ventana_buscar=new Jframe();
por ejemplo, eso esta en la funcion buscar que se llama al pinchar en el boton buscar, y se le añade los botones, label, etc que se quiera, pero si en esta, en la ventana buscar, osea en otra clase, quiero que un boton me cierre esa ventana y no se como hacerlo.
No se si hay que hacer un package o algo para que el evento de una clase pueda cerrar una ventana de otra clase.
Muchas gracias

kitty
21 de Diciembre del 2004
si estan en clases separadas

public class M extends JInternalFrame{
public M(JInternalFrame parent) { // recibo otro frame que sera el que cerrare o mostrare

y un evento

boton.addActionListener(new ActionListener()
{ public void actionPerformed(ActionEvent evt)
{ dispose(); // cierras m
parent.show(); // muetras parent
}
});

otra cosa con Jbuilder tines mucho codigo que no solo aumenta lineas

Problemas
21 de Diciembre del 2004
Gracias Kitty, pero es que eso o no se hacerlo bien o no me funciona. Soy un inutil pa esto de java, como to principiante, c si se un poquito pero esto ufffff.
Si no te importa,me das el email(si no es el que pones) te mando el entorno grafico y te digo lo que quiero hacer con eso de cerrar un JFrame(ventana) desde otra clase y me dices como lo tengo que hacer.
Seria pa mi un gran alivio, por que ya llevo dias atrancado aki y no se como solucionarlo.
Muchas Gracias de todas formas.