2

我有一个问题,我创建了两个单独JFrame的 s(一个是我的主应用程序,另一个使用控制台输出显示任务进度......)。

但是,随后弹出一个对话框会对两个任务栏图标(即JFrames)产生奇怪的影响。也就是说,它会导致一个任务栏图标消失,尽管两个窗口仍然存在。请注意,可以通过最小化或最大化相应窗口来“恢复”丢失的任务栏图标。

以下示例代码会产生问题:

import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class taskbarExample {

    private static JFrame frame1;
    private static JFrame frame2;

    public static void main (String[] args) {

        frame1 = new JFrame("Frame 1");
        frame1.setSize(200,600);
        frame1.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        frame1.setVisible(true);

        frame2 = new JFrame("Frame 2");
        frame2.setSize(600,200);
        frame2.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        frame2.setVisible(true);

        JOptionPane.showMessageDialog(null, "Dialog box");  

    }
}

为了比较,请尝试注释掉该JOptionPane行...没有问题。

谁能解释这里发生了什么?我已经看到一个先前的问题提到了类似的问题,但没有示例代码,也没有对我有帮助的答案。在这里找到

4

2 回答 2

1

这是基本属性,JOptionPane

  • 阻止代码执行,直到屏幕上可见,

  • 此容器是模态的,并且在 JOptionPane 边界之外锁定鼠标和键盘事件

于 2012-11-19T19:02:11.337 回答
0

showMessageDialog 显示一个信息消息对话框。第一个参数确定显示对话框的框架。如果为 null,或者如果 parentComponent 没有 Frame,则使用默认 Frame。

当这个函数 (showMessageDialog) 被启动时,鼠标和键盘被阻止直到你关闭对话框信息。

这种效果是自然的,并不意味着图标消失了。

于 2012-11-19T19:07:27.633 回答