在屏幕上显示的空JFrame

时间:2015-12-15 21:59:07

标签: java swing jframe

我目前正在使用JOptionPane弹出消息并将其显示给用户。该消息并不总是位于其他窗口之上,因此我将其放入虚拟JFrameerrorFrame)并将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();
}

2 个答案:

答案 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(),交换它们。