当前位置: 首页 > 知识库问答 >
问题:

Java-关闭JFrame窗口时的消息

戚晨
2023-03-14

我有一个Java程序,其中包含一个从JFrame继承的类Application。

我想显示一条消息,询问用户单击窗口右上角的X按钮是否要退出程序。

这是我目前的代码:

我从网上找到的教程中得到了这段代码。我自己编写了WindowClosing事件处理程序。但是,我在注册窗口侦听器(addWindowListener)时遇到问题。它告诉我WindowAdapter是抽象的,不能实例化。

请问我怎样才能解决这个问题?

共有3个答案

宗政燕七
2023-03-14

好的,再试一次。

无法创建新的WindowAdapter,因为WindowAdapter是抽象的。抽象类不能被实例化。您需要创建WindowAdapter的子类,并将其抽象方法实现为public。

http://docs.oracle.com/javase/7/docs/api/java/awt/event/WindowAdapter.html

史高阳
2023-03-14

我在两分钟内得到这个。。。。

首先是在Exit_on_close中设置j帧默认关闭事件。其次,创建一个名为“窗口关闭事件处理程序”的类,然后在i nit阶段调用它。

private void WindowClosingEventHandler(){ addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { int confirmed = JOptionPane.showConfirmDialog(null, "Are you sure you want to exit this application?", "Exit Program Message Box",JOptionPane.YES_NO_OPTION);

    if (confirmed == JOptionPane.YES_OPTION) {
        try{
            String login=txtuserid.getText();
            Connection conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/repair", "root", "");
            Statement st = conn.createStatement();
            String update = "UPDATE user set User_Status=0 where UserID='"+ login +"'";
            st.executeUpdate(update);  
            dispose();
            Login2 dialog = new Login2(new javax.swing.JFrame(), true);
            dialog.setVisible(true);
        }catch(SQLException | HeadlessException q){
            JOptionPane.showMessageDialog(null, q);
        }
        System.exit(0);
    }
    else{
        setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
    }
}
});
}
干善
2023-03-14

基本上,你说得几乎正确。有几件东西拼错了,还有一个拼写错误。

首先删除窗口关闭方法(它是窗口,而不是窗口),然后替换添加窗口监听器(新的WindowAdapter()) 使用下面的代码

addWindowListener(new WindowAdapter() {
  public void windowClosing(WindowEvent e) {
    int confirmed = JOptionPane.showConfirmDialog(null, 
        "Are you sure you want to exit the program?", "Exit Program Message Box",
        JOptionPane.YES_NO_OPTION);

    if (confirmed == JOptionPane.YES_OPTION) {
      dispose();
    }
  }
});

 类似资料:
  • 问题内容: 我有一个Java程序,其中包含一个从JFrame继承的 Application 类。 我想显示一条消息,询问用户单击窗口右上方的X按钮是否要退出程序。 到目前为止,这是我的代码: 我从网上找到的教程中获得了此代码。我自己编写了WindowClosing事件处理程序的代码。但是,我在注册窗口侦听器(addWindowListener)时遇到麻烦。它告诉我WindowAdapter是抽象的

  • 所以,我想用JPanel制作一个菜单屏幕,我让它工作了,但是当我按下开始按钮时,它不会关闭菜单窗口,它只是创建一个新窗口,我如何保持它在同一个窗口上,而不关闭/打开菜单窗口,或者我想关闭菜单窗口并打开游戏窗口(JPanel),当我按下开始按钮时。 这是主课。JAVA 这里是Menu.java班 编辑:感谢@威士忌蜘蛛的帮助,我了解到我做了2帧,没有正确引用它们。但是现在我解决了这个问题,我的监听器

  • 问题内容: 我有一个按钮添加到JTabbedPane添加到JPanel与这样的事情: 我想在按钮按下时关闭窗口。我尝试这样做: 但这给了我 我如何在按下按钮时关闭窗口 问题答案: 获取顶层窗口: 确保已将JFrame的默认关闭操作设置为(首选)或(首选)。 如果有可能会从JMenuItem调用此方法,那么除非您首先测试组件的父级是JPopupMenu还是JToolBar,否则它将不起作用。如果是这

  • 问题内容: 我不知道如何使用此代码: 使用x按钮关闭程序。 问题答案: 你需要线 因为按下X按钮时JFrame的默认行为等效于 因此,几乎所有时候,创建JFrame时都需要手动添加该行 我目前指的是like 中的常量,而不是像先前那样直接声明的常量更能反映意图。

  • 问题内容: 我添加了一个窗口状态侦听器,如下所示: 但是,当我使用X关闭按钮时,不会调用该事件。我认为这与netbean jdesktop框架有关。但是我找不到问题所在。谢谢你的帮助。 问题答案: 是界面的一部分。使用代替。

  • 问题内容: 最终编辑: 我在关闭pyplot窗口这一主题上发现,实际上可能不应该使用pyplot完成它。SRK给出了一个很好的示例,说明如何处理将在下面的答案中更新的图。我也偶然发现了如何将pyplot图放到Tkinter窗口中,并且Tkinter比pyplot更擅长打开和关闭窗口。这里是怎样把一个pyplot情节变成Tk的窗口, /最终编辑 我希望能够显示多个图,然后能够从某些代码输入中分别关闭