web-dev-qa-db-ja.com

AWTウィンドウリスナー/イベントを閉じる

これが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を取得しようとしていますが、それをダウンロードします。それ以外はすべて解決しました。ウィンドウを閉じようとしているだけです。

21
alexmherrmann

Window closing method

_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);
    }
}
_
31
Andrew Thompson

この は、addWindowListener()WindowAdapter とともに使用する方法を示しています。これは、 WindowListener インターフェース。 ウィンドウリスナーの書き方 も参照してください。

4
trashgod