我是javax.swing.*
个软件包的新手,只对c#.net很熟悉。
我有两个JFrame,分别是frmLogin
和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()
和setVisible(boolean isVisible)
可用,
因此即使我没有完成frmMain()
,它仍会继续这样做
其旁边的代码(用于显示父表单并清空密码)
框)。
总之,我希望方法.showDialog();
的等效功能不仅仅是.show();
除非我关闭了儿童表格,否则它不会继续下一个代码。
提前致谢! Ü
答案 0 :(得分:4)
使用模式JDialog
代替JFrame
,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