Re: closing a specific JF
To: comp.lang.java.gui
William Z. wrote:
I have a JFrame that, when I click "new" in the menu bar, creates
another JFrame like that of the first. It just runs the following code
...
EventQueue.invokeLater(new Runnable() {
public void run() {
MyApp app = new MyApp();
app.createGUI();
}
});
And inside the createGUI() method is this ...
addWindowListener(new WindowListener() {
public void windowOpened(WindowEvent arg0) {}
public void windowClosed(WindowEvent arg0) {}
public void windowIconified(WindowEvent arg0) {}
public void windowDeiconified(WindowEvent arg0) {}
public void windowActivated(WindowEvent arg0) {}
public void windowDeactivated(WindowEvent arg0) {}
public void windowClosing(WindowEvent arg0) {
System.exit(0);
}
});
As it works right now, when I close a window, all the windows close and
I'd just like to close only that specific window in which the user
clicked the close button.
Any help much appreciated.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class test extends JFrame implements ActionListener {
JButton openButton,closeButton;
JFrame frame;
public test() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new FlowLayout());
openButton = new JButton("Open");
openButton.addActionListener(this);
add(openButton);
closeButton = new JButton("Close");
closeButton.setEnabled(false);
closeButton.addActionListener(this);
add(closeButton);
frame = new JFrame("extra frame");
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent we) {
test.this.actionPerformed(new ActionEvent(
closeButton,ActionEvent.ACTION_PERFORMED,"Close"));
}
});
frame.setSize(400,300);
frame.setLocationRelativeTo(null);
pack();
setVisible(true);
}
public void actionPerformed(ActionEvent ae) {
String ac = ae.getActionCommand();
if (ac.equals("Open")) {
openButton.setEnabled(false);
frame.setVisible(true);
closeButton.setEnabled(true);
} else if (ac.equals("Close")) {
closeButton.setEnabled(false);
frame.setVisible(false);
openButton.setEnabled(true);
}
}
public static void main(String[] args) {
Runnable r = new Runnable() {
public void run() {
new test();
}
};
EventQueue.invokeLater(r);
}
}
--
Knute Johnson
email s/nospam/knute/
---
* Synchronet * The Whitehouse BBS --- whitehouse.hulds.com --- check it out free usenet!
--- Synchronet 3.15a-Win32 NewsLink 1.92
Time Warp of the Future BBS - telnet://time.synchro.net:24