【发布时间】:2015-12-15 21:59:06
【问题描述】:
我目前正在使用JOptionPane 弹出一条消息并将其显示给用户。该消息并不总是在其他窗口的顶部,所以我将它放在一个虚拟的JFrame (errorFrame) 中并将errorFrame 设置为始终在顶部。这适用于保持errorFrame 始终位于顶部,但它会在屏幕右上角创建第二个空框架。选项窗格出现在 100,100 处,就像我正在设置包含它的虚拟框架的位置一样。为什么要创建第二个框架?感谢所有帮助
更新:我从这篇文章中得到了将JOptionPane 放入JFrame 的想法:
JOptionPane won't show its dialog on top of other windows
try {
JFrame errorFrame = new JFrame();
errorFrame.setVisible(true);
errorFrame.setAlwaysOnTop(true);
if (true) {
JOptionPane.showMessageDialog(errorFrame,
"blah blah",
"blahblahblah",
JOptionPane.WARNING_MESSAGE);
return true;
}
errorFrame.dispose();
}
【问题讨论】:
-
作为临时修复,我将 setVisible 设置为 false 并将 setDefaultCloseOperation 设置为 JFrame.DISPOSE_ON_CLOSE 但这似乎是一种不好的做法,因为我正在创建一个不可见的、未使用的 JFrame
-
你想要发生什么?只是 JFrame 和 JOptionPane?
-
在您的问题中发布您的工作代码的屏幕截图
-
您似乎描述的问题实际上是您的操作系统的问题,我知道,烦人:P
-
“消息并不总是在其他窗口之上” 选项窗格的父组件是什么? 1) 为了尽快获得更好的帮助,请发布minimal reproducible example 或Short, Self Contained, Correct Example。 2) 见The Use of Multiple JFrames, Good/Bad Practice?