不能调用UI类与NetBeans GUI构建器

问题描述:

在学习NetBeans中的GUI构建工作,我很困惑。我正在用GUI构建器编写一个基本的LoginUI类。如果我将该类作为独立运行,那么我希望按照预期弹出窗口。但是,如果我尝试创建一个新的实例,它不会。我控制的流程如下:不能调用UI类与NetBeans GUI构建器

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

'theLoginUI.setVisible(真)' – nachokk

+0

感谢您的帮助,调用setVisible工作。我看到,在异常处理程序中调用调用setVisible建设者,所以我想它只是照顾,对我。它不会。你懂得越多! – Tritonis

你永远不会调用设置中可以看到的地方,事实上,这是不可能的,以确定您的UI实际上有要显示的窗口。

如果LoginUI从类似JFrame,该你应该调用扩展...

theLoginUI.pack(); 
theLoginUI.setVisible(true); 
+0

其实包()在'的initComponents已经致电()''只是调用setVisible(真)',你赢了我的xD通过时间+1 – nachokk

+0

@nachokk假设组件扩展来回的JFrame和NetBeans已被配置为自动应用包,但是,从不冒险;) – MadProgrammer