2

JInternal フレームを使用して Java スイング アプリケーションを作成しました。内部フレームを閉じると、「よろしいですか?」というポップ メッセージが表示されます。オプションペインで。JInternal フレームのクローズ操作にイベントを入れるにはどうすればよいですか? 私を助けてください。

4

1 に答える 1

8

の記述方法については、 http://docs.oracle.com/javase/tutorial/uiswing/events/internalframelistener.htmlを参照してくださいInternalFrameListenerinternalFrameClosing(InternalFrameEvent e)メソッド内に閉じるためのすべてのコードを配置できます。

次に、前のリンクでわかるように、メソッドを使用しInternalFrameListenerて、新しく作成されたの新しいインスタンスを に追加するだけです。JInternalFrameJInternalFrameaddInternalFrameListener

addInternalFrameListenerメソッドに関する情報は次のとおりです: JavaDoc

コード:

public class InternalFrameEventDemo implements InternalFrameListener{
    JInternalFrame frame;
    public InternalFrameEventDemo() {
        frame = new JInternalFrame("Event Generator",
                                                      true,  //resizable
                                                      true,  //closable
                                                      true,  //maximizable
                                                      true); //iconifiable
        //so that you can decide whether to close it or not
        frame.setDefaultCloseOperation(JInternalFrame.DO_NOTHING_ON_CLOSE);
        frame.addInternalFrameListener(this);
    }
    public void internalFrameClosing(InternalFrameEvent e) {
        //YOUR CODE HERE
        int option = JOptionPane.showConfirmDialog(null, "Really Close?", "Exit", JOptionPane.YES_NO_OPTION);  
        if (option == JOptionPane.YES_OPTION){
            //call dispose to really close it
            dispose();  
        }  
    }
    public void internalFrameClosed(InternalFrameEvent e) {

    }
    public void internalFrameOpened(InternalFrameEvent e) {

    }
    public void internalFrameIconified(InternalFrameEvent e) {

    }
    public void internalFrameDeiconified(InternalFrameEvent e) {

    }
    public void internalFrameActivated(InternalFrameEvent e) {

    }
    public void internalFrameDeactivated(InternalFrameEvent e) {

    }

    public static void main(String[] args) {
        new InternalFrameEventDemo();
    }
}
于 2013-09-05T10:03:17.730 に答える