AWT窗口关闭监听器/事件

如果这是一个n00b问题,我很抱歉,但是一旦我创建了Window监听器,窗口事件和其他所有内容,我就花了太长时间,如何指定要调用的方法? 这是我的代码:

private static void mw() { Frame frm = new Frame("Hello Java"); WindowEvent we = new WindowEvent(frm, WindowEvent.WINDOW_CLOSED); WindowListener wl = null; wl.windowClosed(we); frm.addWindowListener(wl); TextField tf = new TextField(80); frm.add(tf); frm.pack(); frm.setVisible(true); } 

我正在尝试获取一个URL,并下载它,我已经完成了其他所有工作,我只是想让窗口关闭。

关窗方法

 import java.awt.*; import java.awt.event.*; import javax.swing.*; class FrameByeBye { // The method we wish to call on exit. public static void showDialog(Component c) { JOptionPane.showMessageDialog(c, "Bye Bye!"); } public static void main(String[] args) { // creating/udpating Swing GUIs must be done on the EDT. SwingUtilities.invokeLater(new Runnable() { public void run() { final JFrame f = new JFrame("Say Bye Bye!"); // Swing's default behavior for JFrames is to hide them. f.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); f.addWindowListener( new WindowAdapter() { @Override public void windowClosing(WindowEvent we) { showDialog(f); System.exit(0); } } ); f.setSize(300,200); f.setLocationByPlatform(true); f.setVisible(true); } }); } } 

另请查看Runtime.addShutdownHook(Thread)了解在关闭之前执行的任何操作。

AWT

这是该代码的AWT版本。

 import java.awt.*; import java.awt.event.*; class FrameByeBye { // The method we wish to call on exit. public static void showMessage() { System.out.println("Bye Bye!"); } public static void main(String[] args) { Frame f = new Frame("Say Bye Bye!"); f.addWindowListener( new WindowAdapter() { @Override public void windowClosing(WindowEvent we) { showMessage(); System.exit(0); } } ); f.setSize(300,200); f.setLocationByPlatform(true); f.setVisible(true); } } 

此示例演示如何将addWindowListener()WindowAdapter一起使用, WindowAdapterWindowListener接口的具体实现。 另请参见如何编写窗口侦听器