使用Java:我有一个使用netbeans GUI构建器构建的GUI。

GUI类是通过扩展jFrame创建的

public class ArduinoGUI extends javax.swing.JFrame

并使用以下命令显示GUI:

java.awt.EventQueue.invokeLater(new Runnable() {
    public void run() {
        new ArduinoGUI().setVisible(true);
    }
}


因此,我没有要调用frame.的实际框架对象,因此在这种情况下如何覆盖windowClosed函数,因为在应用程序退出之前,我必须调用特定的函数来整理串行连接。

编辑:这是明确的代码,如下所示:

@Override
public void processWindowEvent(WindowEvent e) {
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
        arduino.close();
        System.out.println("Arduino Close()");
        dispose();
    }

最佳答案

如果还没有完成,请在您的类(这是JFRame的子类)中创建“ processWindowEvent”方法。该方法将WindowEvent对象作为参数。在该方法内添加一个if块,如下所示:

if(e.getID() == WindowEvent.WINDOW_CLOSING){

    //...Do what you need to do just before closing

}


e是WindowEvent对象传递给方法的参数。

09-12 02:33