Java 如何绑定JDialog box及其对应的JFrame(JDialog box的启动位置)
在使用Netbeans IDE开发java桌面应用程序时,我遇到了一个奇怪的问题 情况如下: 有一个JFrame。它有一个按钮,可以启动JDialog对话框。一旦JDialog box启动,JFrame将被禁用以进行编辑。现在我在屏幕上打开了JFrame和JDialog框。 只需按Windows+D直接进入桌面,然后单击任务栏上的java应用程序图标。您可以看到现在将显示JFrame。您甚至无法编辑它,因为我在打开JDialog box时禁用了它。此时,我的应用程序似乎挂起并停止工作。只有在按下Alt+Tab按钮后,您才能确定与此屏幕对应的弹出窗口已经打开 现在我的问题是:有没有办法将这两个屏幕(JFrame+JDialog)粘在一起,这样即使在按下Windows+D并单击任务栏上的图标后,两个屏幕也应该同时打开Java 如何绑定JDialog box及其对应的JFrame(JDialog box的启动位置),java,swing,netbeans,jframe,jdialog,Java,Swing,Netbeans,Jframe,Jdialog,在使用Netbeans IDE开发java桌面应用程序时,我遇到了一个奇怪的问题 情况如下: 有一个JFrame。它有一个按钮,可以启动JDialog对话框。一旦JDialog box启动,JFrame将被禁用以进行编辑。现在我在屏幕上打开了JFrame和JDialog框。 只需按Windows+D直接进入桌面,然后单击任务栏上的java应用程序图标。您可以看到现在将显示JFrame。您甚至无法编辑它,因为我在打开JDialog box时禁用了它。此时,我的应用程序似乎挂起并停止工作。只有在按下
希望我能清楚地解释我的疑问。将JFrame传递给JDialog构造函数,将其设置为其父级
JFrame frame = new JFrame();
//....
JDialog dialog = new JDialog(frame);
编辑:在您提到的注释中,Netbeans创建了JDialog的一个子类。向扩展JDialog的类添加一个Frame类型的参数,如下所示:
class MyDialog extends JDialog
{
public MyDialog(Frame frame)
{
super(frame);
}
}
通常在框架中创建MyDialog实例的地方,现在可以执行以下操作:
MyDialog dialog = new MyDialog(this);
//....
dialog.setVisible(true);
因为我使用的是Netbeans IDE,所以对于每个屏幕,它都会创建一个单独的类,并扩展屏幕类型的类。在我的例子中,它创建了两个扩展类(JFrame和JDialog)。我将如何实现你在这里提出的目标?