gpt4 book ai didi

java - JFrame : setDefaultCloseOperation has no effect

转载 作者:行者123 更新时间:2023-11-29 04:28:39 27 4
gpt4 key购买 nike

我正在使用一个库方法来创建、显示并返回一个 JFrame:

public JFrame displayChart() {
final JFrame frame = new JFrame(windowTitle);
javax.swing.SwingUtilities.invokeLater(new Runnable() {
...
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
...
frame.pack();
frame.setVisible(true);
}
return frame;
}

当我调用 setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE) 返回的帧时,它似乎没有任何效果。

如何更改创建不受您控制的框架的关闭操作?

最佳答案

看起来像一个竞争条件。如果您只是在返回的帧上调用 set,那么 - 稍后 - 他们的 invokeLater 将执行,覆盖您的更改。

将您的更改放入另一个invokeLater:

public void yourMethod() {
JFrame frame = framework.displayChart();
javax.swing.SwingUtilities.invokeLater(new Runnable() {
frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
}
}

Swing 将按顺序执行它们,这意味着您的最后执行。

关于java - JFrame : setDefaultCloseOperation has no effect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44884030/

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