Java JInternalFrame配置查找源

时间:2017-01-20 15:55:59

标签: java jinternalframe

我有一个JInternalFrame可以通过单击X按钮或从菜单中以编程方式关闭。两种方法都以

结束
public void internalFrameClosing(InternalFrameEvent e) 

以后

public void internalFrameClosed(InternalFrameEvent e) 

我想区分这个调用的来源并触发不同的操作(即在通过X按钮关闭我的框架请求确认并稍后dispose()的情况下,从菜单中选择“关闭”的情况下dispose()框架。)

你能建议任何解决方案吗?

1 个答案:

答案 0 :(得分:0)

要更改X按钮的行为,您可以将默认关闭操作设置为DO_NOTHING_ON_CLOSE,并添加InternalFrameListener,它将负责要求关闭确认,并在需要时关闭框架:

        internalFrame.setDefaultCloseOperation(JInternalFrame.DO_NOTHING_ON_CLOSE);

        internalFrame.addInternalFrameListener(new InternalFrameListener() {

            @Override
            public void internalFrameOpened(final InternalFrameEvent e) {

            }

            @Override
            public void internalFrameClosing(final InternalFrameEvent e) {

                // Do your confirmation stuff !!
                // Dispose the internal frame if needed !!

            }

            @Override
            public void internalFrameClosed(final InternalFrameEvent e) {

            }

            @Override
            public void internalFrameIconified(final InternalFrameEvent e) {

            }

            @Override
            public void internalFrameDeiconified(final InternalFrameEvent e) {

            }

            @Override
            public void internalFrameActivated(final InternalFrameEvent e) {
                // TODO Auto-generated method stub

            }

            @Override
            public void internalFrameDeactivated(final InternalFrameEvent e) {
                // TODO Auto-generated method stub

            }
        });
  

DO_NOTHING_ON_CLOSE

     

什么都不做。这需要程序处理   注册的windowClosing方法中的操作   InternalFrameListener对象。

(请注意,在上面的文档摘录中,我怀疑windowClosing是一个拼写错误,它们可能意味着internalFrameClosing)。

请参阅:JInternalFrame.setDefaultCloseOperation