致力于学习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[]) {


在其某些生成的代码中。据我所知,您在一个项目中应该只拥有1个主类。这可能是我的问题吗?

最佳答案

实际上,您永远都不可能在任何地方都看不到Call set可见,这是不可能确定您的UI是否确实有要显示的窗口的。

如果LoginUI来自JFrame之类的东西,则on应该调用...

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

关于java - 无法使用NetBeans GUI构建器调用UI类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21838565/

10-10 01:55