在使用Netbeans IDE开发Java桌面应用程序时,我遇到了一个奇怪的问题。
方案如下: 有一个JFrame。它有一个按钮,可以启动JDialog盒子。一旦JDialog框启动,JFrame将被禁用以进行编辑。现在我在屏幕上打开了JFrame和JDialog框。 只需按Windows + D直接转到桌面,然后单击任务栏上的java应用程序图标。您可以看到JFrame现在将显示。您甚至无法编辑它,因为我在打开JDialog框时禁用了它。此时,看起来我的应用程序被挂起并停止工作。只有在按下Alt + Tab按钮后,您才能确定已经打开了一些与此屏幕对应的弹出窗口。
现在我的问题:有没有办法将这两个屏幕(JFrame + JDialog)粘在一起,这样即使按下Windows + D然后点击任务栏上的图标,屏幕也应同时打开。
希望我能清楚地解释我的怀疑。
答案 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);