Problemas para cerrar una ventana
No se como cerrar una ventana cuando le das a un boton como por ejemplo cancelar o aceptar. Si ponemos de evento System.exit(0); se cierra la aplicacion por completo y System.runFinalization(); me da error. Tab he intentado no hacerla visible setVisible(flase); pero la ventana si se ve aunque el contenido no. Yo lo que quiero es cerrarla a ver si alguien me dice como hacerlo.
El codigo es este:
import javax.swing.*;
import java.*;
import java.awt.Rectangle;
import java.awt.event.*;
import java.awt.Color;
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);
//jLabel1.setBounds(new Rectangle(48, 29, 289, 28));
//jButton1.setBounds(new Rectangle(82, 71, 94, 28));
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.setBounds(new Rectangle(209, 71, 94, 28));
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) {
setVisible(false);
}
}
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);
}
}
El codigo es este:
import javax.swing.*;
import java.*;
import java.awt.Rectangle;
import java.awt.event.*;
import java.awt.Color;
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);
//jLabel1.setBounds(new Rectangle(48, 29, 289, 28));
//jButton1.setBounds(new Rectangle(82, 71, 94, 28));
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.setBounds(new Rectangle(209, 71, 94, 28));
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) {
setVisible(false);
}
}
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);
}
}
Hola! prueba a poner :
public void BotonactionPerformed(ActionEvent e) {
ventana.hide();
}
ventana es la ventana que tu quieres cerrar. A ver si te funciona.
public void BotonactionPerformed(ActionEvent e) {
ventana.hide();
}
ventana es la ventana que tu quieres cerrar. A ver si te funciona.
Hola:
Bueno el método hide(); ya se deprecó, existe otro método que se llama dispose(). sin embargo lo que yo hago es eliminar el objeto de la ventana y tornarlo no visible, esto como parte de evitar el cerrar con exit, ya que termina toda la aplicación.
Pruea cualquiera de las 2 formas:
public void BotonactionPerformed(ActionEvent e) {
ventana.dispose();
}
public void BotonactionPerformed(ActionEvent e) {
ventana.setVisible(false);
ventana = null;
}
Saludos y Suerte
Bueno el método hide(); ya se deprecó, existe otro método que se llama dispose(). sin embargo lo que yo hago es eliminar el objeto de la ventana y tornarlo no visible, esto como parte de evitar el cerrar con exit, ya que termina toda la aplicación.
Pruea cualquiera de las 2 formas:
public void BotonactionPerformed(ActionEvent e) {
ventana.dispose();
}
public void BotonactionPerformed(ActionEvent e) {
ventana.setVisible(false);
ventana = null;
}
Saludos y Suerte