Java 父子 JFrame

Jin*_*uke 2 java swing jframe

我是javax.swing.*包的新手,只熟悉 c#.net。我有即两个JFramesfrmLoginfrmMain分别。我想要做的只是一个简单的代码,如下所示:

+----- C# 版本---------

this.hide();
new frmMain().ShowDialog();
this.show();

tbPsswrd.Text = String.empty;
Run Code Online (Sandbox Code Playgroud)

+---- JAVA 版 -------

this.setVisible(false);
new frmMain().setVisible(true);
this.setVisible(true);

tbPsswrd.Text = "";
Run Code Online (Sandbox Code Playgroud)

+----------------------------

在 Java JFrame 中,只有show()setVisible(boolean isVisible)可用,因此即使我没有完成frmMain(),它也会继续执行旁边的其余代码(即显示父表单并清空密码框)。

总而言之,我想要一个等效的方法功能,.showDialog();不仅仅是.show(); 为了它不会继续下一个代码,除非我关闭子窗体。

提前致谢!ü

Dan*_*yMo 5

使用 modalJDialog而不是 aJFrame并且dialog.setVisible(true)会阻塞直到对话框关闭。例如:

JDialog dialog = new JDialog(parentFrame, true); // parent, isModal
dialog.setVisible(true); // blocks until dialog is closed
// ... do stuff after dialog is closed
Run Code Online (Sandbox Code Playgroud)