- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用一个库方法来创建、显示并返回一个 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/
我对 Java 还很陌生,尤其是在构建 JFrame 方面。我收到上述错误,问题似乎来自生成的代码。请协助我清除错误并了解导致错误的原因。 package calculator; import jav
我想自定义扩展JFrame的类的关闭操作。阅读其他人做过同样事情的代码示例,我发现他们都使用 WindowListener 来实现这一点。为什么我们不能通过重写 JFrame 的 setDefault
刚刚开始使用 GUI,我对这段代码感到非常困惑,由于某种原因,当我设置默认关闭操作时,它不起作用,并且在添加 JLabel 和 TextField 等组件时也是如此。我已经用 JFrame 扩展了我的
我遇到了一段调用 setdefaultcloseoperation() 而不引用任何对象的代码。我读到方法是参照对象调用的。这是代码 public class Mainpage extends JFr
这个问题在这里已经有了答案: Difference between dispose and exit on close in java (3 个答案) 关闭 8 年前。 JFrame 类的 setD
import javax.swing.*; import java.awt.*; class Myframe extends Frame { private JButton btn;
我无法理解这两种说法之间的区别: frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE); 还有 frame.setDefaultCloseOperat
我是 Java 新手,在这个简单的代码中找不到我的错误。错误是关闭操作不起作用: error: cannot find symbol 以上是编译错误。这是代码。 import javax.swing.
我创建了三个类: public class Gui extends JFrame { private final JButton buttonClose = new JButton("Close");
我正在使用一个库方法来创建、显示并返回一个 JFrame: public JFrame displayChart() { final JFrame frame = new JFrame(windo
关闭应用程序后如何显示我创建的java应用程序?我的意思是我想关闭我制作的应用程序,之后它仍然在后台进程(托盘)上运行,我做到了,但是在我双击托盘图标后如何使应用程序再次显示(弹出)?有人可以帮助我吗
我正在制作一个文字处理器应用程序以练习 Java,我希望这样当用户尝试关闭该应用程序时,会出现一个 JFrame 要求保存更改。 我正在考虑 setDefaultCloseOperation(),但到
我想让我的 Java 应用程序在按下“关闭”十字按钮时调用我自己的自定义函数。据我所知,可能没有办法,因为 setDefaultCloseOperation 根本没有重载。 知道如何实现这一点吗? 最
在 java swing 应用程序中,以下操作之间有什么区别?我什么时候更愿意使用其中一种而不是另一种? 我在互联网上散布的不同示例中看到过这两种情况: // Have the window exit
有没有办法在 JavaFX 中设置自定义关闭操作。我从 Swing 中知道这个,但在 JavaFX 中找不到它。如果您通过按 [X] 在此处关闭窗口,它将自动关闭。 最佳答案 您可以使用 onClos
我需要停止在 Swing 窗口上单击红色 x 标记时关闭窗口的默认操作。我正在使用 JDialog 并向其添加 WindowsListener 以捕获 WindowClosing 事件,在那里我决定是
我被教导要添加它以始终将它添加到 jframe 的运行方法中,但与不使用它相比它不会改变任何东西。 我想知道的是,当你把它去掉时会发生什么? 谢谢 @Override public void run(
我知道文档中说JFrame.setDefaultCloseOperation(int)是HIDE_ON_CLOSE。但是,当我在当前帧窗口上按 X 时,它不仅会隐藏当前帧,还会终止正在运行的程序。谁能
我一直在搜索关于这个话题的很多东西,但对任何答案都没有满意,所以最后在这里问了一个问题:)。无论如何,来自这个类似的 post很明显dispose()不会终止所有进程并且仍然保留在 task mana
在 javadoc 上,HIDE_ON_CLOSE 默认选项说明了这一点 Automatically hide the frame after invoking any registered Wind
我是一名优秀的程序员,十分优秀!