java - 如何在关闭JInternalFrame之前询问 "Are you sure?"?

标签 java swing

我用 JInternal 框架制作了一个 java swing 应用程序。当我关闭内部框架时,它应该显示一条弹出消息“您确定吗?”在选项 Pane 中。如何将事件放入 JInternal 框架的关闭操作中?请帮助我。

最佳答案

请参阅http://docs.oracle.com/javase/tutorial/uiswing/events/internalframelistener.html有关如何编写 InternalFrameListener 的信息。您可以将所有关闭代码放入 internalFrameClosing(InternalFrameEvent e) 方法中。

然后,只需使用 JInternalFrame 方法 addInternalFrameListener 将新创建的 InternalFrameListener 的新实例添加到 JInternalFrame 中>,正如您在上一个链接中看到的那样。

以下是有关 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();
    }
}

关于java - 如何在关闭JInternalFrame之前询问 "Are you sure?"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18633164/

相关文章:

java - Sonarqube 从 6.0 升级到 6.4 时没有语言插件错误

java - Object.clone() 不调用 super.clone() 实际上会产生什么后果?

java - 组件未显示在面板上

java - 当我的应用程序打开一个新的 java 程序时,如何防止我的应用程序使用新主题重新绘制自身?

java打印 - 边框的设置大小

java - Android Java - 将 HttpPost 结果转换为 byte[]

java - 如何使用 stax 检测 java 中的 xml 数组?

java - 缓存查询结果

JTextPane 中的 Java Swing 聊天室?

java - Swing 上自定义组件的问题