これがn00bの質問の場合は申し訳ありませんが、ウィンドウリスナー、ウィンドウイベント、およびその他すべてを作成した後、wayを費やしすぎたため、どのメソッドを呼び出すかを指定するにはどうすればよいですか?これが私のコードです:
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バージョンです。
_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
とともに使用する方法を示しています。これは、 WindowListener
インターフェース。 ウィンドウリスナーの書き方 も参照してください。