今天给大家分享一个鄙人在编程中总结出的一个易错点和最容易让人感到困惑的一个知识点:
当你要从一个窗体跳转到另一个窗体,你把跳转目标的窗体设成模态对话框,设计成模态对话框就是禁止父窗体与子窗体之间操作,简单说就是当调用子窗体的时候,父窗体不能使用,必须等子窗体销毁才能使用,但是在这里会有个容易出错的地方就是子窗体不能正常现实出来,而是显示一个圆点,也就是下图这种格式
为什么会出现这种情况呢?刚开始我也有些疑惑,后来灵机一动,把setModal(true)放在setVisible(true)的后面,竟然发现解决了这个问题。
还有就是 javasetModal(true) 要在dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);的后面,否则将无法关闭子对话框
正确写法
public class EmployeeRegisterFrame extends JDialog {
private JTextField accountField;
private JTextField phoneField;
private JPasswordField passwordField;
public EmployeeRegisterFrame() {
try {
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
**setVisible(true);**
setResizable(false);
**setModal(true);**
} catch (Exception e) {
e.printStackTrace();
}
setSize( 581, 420);
setLocationRelativeTo(null);
getContentPane().setLayout(null);
错误写法
public class EmployeeRegisterFrame extends JDialog {
private JTextField accountField;
private JTextField phoneField;
private JPasswordField passwordField;
public EmployeeRegisterFrame() {
try {
**setModal(true);**
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
**setVisible(true)**;
setResizable(false);
} catch (Exception e) {
e.printStackTrace();
}
setSize( 581, 420);
setLocationRelativeTo(null);
getContentPane().setLayout(null);
来源:CSDN
作者:清风lg
链接:https://blog.csdn.net/qq_43073558/article/details/103462464