【发布时间】:2018-12-08 13:59:23
【问题描述】:
当条件为真时,我想在其构造函数中处理一个框架。
this.dispose 没有处理框架。我想要这样,当我的构造函数被调用时,如果条件即 (configurationBean.getCode().equals(macPass)) 为真,那么必须调用一个新框架并且必须关闭这个框架。否则必须创建此框架。
public ConfigurationFrame() {
String pcMac = getPcMacAddress();
String macPass = getPassword(pcMac);
ConfigurationDao configurationDao = new ConfigurationDaoImpl();
ConfigurationBean configurationBean = configurationDao.checkCode(macPass);
if(configurationBean == null)
initComponents();
else if(configurationBean.getCode().equals(macPass))
{
new MainLoginFrame().setVisible(true);
this.dispose();
super.setVisible(false);
}
}
}
【问题讨论】:
-
构造函数真的不适合这个。
-
这是一个非常糟糕的设计方案;根本不这样做
-
好的。然后给我一些建议。
-
改为 1) 从不扩展 JFrame,而是扩展或使用 JPanel 并在需要时创建 JFrame 或其他顶级窗口。 2) 对于这样的对话框窗口,使用 modal JDialog 而不是 JFrame。
-
请考虑展示一个小型演示程序来说明您想要实现的目标,例如minimal reproducible example。还要解释一些背景——什么会使条件为真与假?您尝试显示的窗口的用途是什么?
标签: java swing constructor jframe dispose