Java jdesktop FrameView的windowClosing事件?

时间:2010-10-28 21:01:43

标签: java swing netbeans

我正在尝试使用NetBeans编写GUI应用程序,我越来越厌倦了它。

我使用NetBeans构建了一个“Java桌面应用程序”。它将主窗体创建为org.jdesktop.application.FrameView后代。我想知道在表单关闭时添加一些代码的正确方法是什么。

到目前为止,我目前的尝试是在构造函数中使用WindowAdapter添加getFrame().addWindowListener对象,但这不起作用。因为在尚未构建框架时无法调用getFrame。我无法将其视为GUI构建器的某个事件。

2 个答案:

答案 0 :(得分:3)

NetBeans IDE 6.9.1中提供的Java桌面应用程序仅用于历史目的,不建议在项目中使用。当我们尝试使用Java Desktop Application选项创建新项目时,NetBeans IDE 6.9.1也会显示此警告。

alt text

假设您仍在使用Swing应用程序框架并且您想要向主窗口添加一个windowClosing侦听器,那么让我回答您的问题。

创建Java桌面应用程序时,您将获得三个类(假设您键入了DesktopApplication1作为应用程序的名称):

  1. DesktopApplication1.java
  2. DesktopApplication1AboutBox.java
  3. DesktopApplication1View.java
  4. 要添加窗口关闭侦听器,请在DesktopApplication1类的configureWindow方法中编写代码,如下所示:

    @Override protected void configureWindow(java.awt.Window root) {
    
        root.addWindowListener(new WindowAdapter() {
    
            @Override
            public void windowClosing(WindowEvent e) {
                // write your code here
                System.out.println("Window Closing"); 
            }
    
        });
    }
    

    关于
    Tushar Joshi,那格浦尔

答案 1 :(得分:2)

这只是Tushar答案的补充。

如果要在窗口关闭时提供确认对话框,则必须通过在ExitListener中添加startup method并使canExit方法返回{来更改默认退出行为{1}}:

false