如何绑定JDialog框及其相应的JFrame(启动JDialog框的位置)

时间:2015-01-13 19:05:46

标签: java swing netbeans jframe jdialog

在使用Netbeans IDE开发Java桌面应用程序时,我遇到了一个奇怪的问题。

方案如下: 有一个JFrame。它有一个按钮,可以启动JDialog盒子。一旦JDialog框启动,JFrame将被禁用以进行编辑。现在我在屏幕上打开了JFrame和JDialog框。 只需按Windows + D直接转到桌面,然后单击任务栏上的java应用程序图标。您可以看到JFrame现在将显示。您甚至无法编辑它,因为我在打开JDialog框时禁用了它。此时,看起来我的应用程序被挂起并停止工作。只有在按下Alt + Tab按钮后,您才能确定已经打开了一些与此屏幕对应的弹出窗口。

现在我的问题:有没有办法将这两个屏幕(JFrame + JDialog)粘在一起,这样即使按下Windows + D然后点击任务栏上的图标,屏幕也应同时打开。

希望我能清楚地解释我的怀疑。

1 个答案:

答案 0 :(得分:0)

将JFrame传递给JDialog构造函数,将其设置为父级。

JFrame frame = new JFrame();
//....
JDialog dialog = new JDialog(frame);

编辑:在你提到的评论中,Netbeans创建了JDialog的子类。将类型为Frame的参数添加到扩展JDialog的类中,如下所示:

class MyDialog extends JDialog
{

    public MyDialog(Frame frame)
    {
        super(frame);
    }
}

您通常在框架中制作MyDialog的实例,现在可以执行以下操作:

MyDialog dialog = new MyDialog(this);
//.... 
dialog.setVisible(true);