gpt4 book ai didi

java - 在 Java 中处理和关闭窗口

转载 作者:搜寻专家 更新时间:2023-10-31 08:29:45 25 4
gpt4 key购买 nike

好吧,这可能是一个愚蠢的问题,但我是 Java 的新手,在我养成任何坏习惯之前,我试图以正确的方式自学一些东西。

无论如何,我昨晚正在编写一个程序,其中包含一个扩展 Frame 的自定义类和一个扩展 Canvas 的自定义类。 main() 方法在 Canvas 类中,我在那里创建了框架类的实例。问题是当程序检测到窗口关闭事件时,我无法处理框架,因为我似乎无法从 main 方法外部访问它。如果我试图在 main() 之外定义它,那么我就不能在其中使用它。所以我最终跳过了 dispose() 而只是使用了 System.exit(0)。这样可以吗?它基本上是在做同样的事情吗?或者这是我需要解决的问题,如果需要,知道如何解决吗?

感谢阅读,

科迪

最佳答案

您可以从事件的 source 属性中获取对框架的引用:

class MyWindowListener extends WindowAdapter {

public void windowClosing(WindowEvent e){
Frame frame = (Frame) e.getSource();
frame.dispose();
}

}

或者,由于这是在构造函数中声明的匿名类(大概),您还可以访问封闭实例,因此您也可以将其写为:

class MyFrameClass extends Frame {
public MyFrameClass() {
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
MyFrameClass.this.dispose();
}
});
}
}

或者你可以让它更简单(因为你的 WindowListener 没有自己的方法“dispose”):

public void windowClosing(WindowEvent e){
dispose();
}

关于java - 在 Java 中处理和关闭窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4737495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com