继续学习netbeans的GUI构建器,我很困惑。我正在使用GUI构建器编写基本的LoginUI类。如果我将该类作为独立运行,我想要的窗口会按预期弹出。但是,如果我尝试创建它的新实例,它不会。我的控制流程如下:
public static void main(String[] args) {
LoginCntl theLoginCntl = new LoginCntl();
}
public class LoginCntl {
public LoginCntl(){
LoginUI theLoginUI = new LoginUI();
}
}
public LoginUI() {
initComponents();
System.out.println("Are we here?");
//This prints out, so I know the program gets here. The problem is the window does not show up here.
}
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new LoginUI().setVisible(true);
}
});
我真的不确定为什么我可以独立运行它并获取我想要的窗口然后当我创建它的新实例时窗口不会出现。我感觉我错过了一些非常基本的东西。任何帮助将不胜感激。
编辑:添加了一些netbeans提供的生成代码。它确实调用了setVisible()。话虽这么说,在寻找setVisible()时,我注意到GUI构建器添加了
public static void main(String args[]) {
在其生成的一些代码中。据我所知,你应该只在一个项目中拥有一个主要类。这可能是我的问题吗?
答案 0 :(得分:1)
你从不在任何地方调用set visible,事实上,你无法确定你的UI是否真的有一个要显示的窗口。
如果LoginUI来自JFrame
之类的东西,那么您应该打电话给...
theLoginUI.pack();
theLoginUI.setVisible(true);