gpt4 book ai didi

java - JFrame 捕获处置事件

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

我有一个 Java 项目。
我有一个带有处理程序的 JFrame,就像这样

frame.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent evt) {
this.setEnabled(true);

}
});

但是,在该框架上我还有一个关闭按钮(以使其更加用户友好)并且该“关闭”按钮调用框架处理方法。现在,当我通过单击右上角的小 x 按钮关闭框架时,将调用 WindowListener。但是当我调用 dispose 方法时事件不会触发。
我应该调用其他方法来关闭,以便 WindowListener 触发,还是实现另一个监听器?

最佳答案

你应该看看 WindowListener interface .

windowClosing() :当用户试图从窗口的系统菜单关闭窗口时调用。 (窗口 X 按钮)

windowClosed() : 当窗口因调用窗口上的 dispose 而关闭时调用。

因此,windowClosing()在用户单击窗口的X 按钮时被调用; windowClosed()dispose() 事件被调用时被调用,所以它总是被调用:

  • 如果用户使用 Windows X 按钮关闭框架
  • 如果框架被代码以编程方式关闭
    JFrame myFrame = new JFrame();
myFrame.addWindowListener(new java.awt.event.WindowAdapter() {
@Override
public void windowClosed(java.awt.event.WindowEvent windowEvent) {
// your code
}
});

来源:https://alvinalexander.com/blog/post/jfc-swing/closing-your-java-swing-application-when-user-presses-close-but

关于java - JFrame 捕获处置事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4154780/

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