2

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

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

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

tbPsswrd.Text = String.empty;

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

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

tbPsswrd.Text = "";

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

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

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

提前致谢!ü

4

1 回答 1

6

使用模式JDialog而不是 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
于 2013-06-06T02:45:13.797 回答