我目前正在使用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();
}
答案 0 :(得分:1)
将父框架设置为暂时不在顶部,而不是创建虚拟框架。
JFrame frame = new JFrame("Parent");
if(test condition){
frame.setAlwaysOnTop(true);
int choice = JOptionPane.showMessageDialog(frame,
"blah blah","blahblahblah",JOptionPane.WARNING_MESSAGE);
if(choice!=null)
frame.setAlwaysOnTop(true);
}
答案 1 :(得分:0)
尝试在dispose()之后放置setVisible(),交换它们。