Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.gui > #442

Re: closing a specific JF

From "Knute Johnson" <knute.johnson@THRWHITE.remove-dii-this>
Subject Re: closing a specific JF
Message-ID <X0Jhh.1712$uX4.1314@newsfe09.phx> (permalink)
Newsgroups comp.lang.java.gui
References <1166480819.702914.157250@n67g2000cwd.googlegroups.com>
Date 2011-04-27 15:27 +0000
Organization TDS.net

Show all headers | View raw


  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

Back to comp.lang.java.gui | Previous | NextPrevious in thread | Find similar


Thread

closing a specific JFrame "William Z." <william.z.@THRWHITE.remove-dii-this> - 2011-04-27 15:27 +0000
  Re: closing a specific JF "Daniel Pitts" <daniel.pitts@THRWHITE.remove-dii-this> - 2011-04-27 15:27 +0000
    Re: closing a specific JF "William Z." <william.z.@THRWHITE.remove-dii-this> - 2011-04-27 15:27 +0000
  Re: closing a specific JF "Knute Johnson" <knute.johnson@THRWHITE.remove-dii-this> - 2011-04-27 15:27 +0000

csiph-web