Java Swing对话窗口焦点

时间:2017-11-20 20:30:25

标签: java swing user-interface dialog

在我的应用程序中,我有一个主窗口和一个实用程序弹出对话框,当用户单击菜单项时会显示该对话框。我的问题是,如果在java应用程序上打开另一个程序(比如firefox),这显然会隐藏java应用程序。这没关系 - 但是当用户再次单击我的java应用程序时,只显示主窗口 - 实用程序弹出对话框仍然隐藏在firefox下。我想设计它,当用户以任何方式与主窗口交互时,实用程序弹出对话框也会被带到前面。

我尝试将MouseInputListener添加到主框架中以将实用程序对话框放到前面,但这也会将焦点转移到它,这是我不想要的。

private MouseInputAdapter onWindowClick = new MouseInputAdapter() {
    @Override
    public void mousePressed(MouseEvent e) {
        if (scheduleDialog != null)
            scheduleDialog.toFront(); // the utility dialog
    }
};

1 个答案:

答案 0 :(得分:2)

  

实用程序弹出对话框仍然隐藏

创建对话框时,您需要将主窗口指定为对话框的所有者。

然后当您单击窗口的图标时,也会显示该对话框。

阅读JDialog API以获取要使用的正确构造函数。