Java 在不同的';主要';默认值之外的方法

Java 在不同的';主要';默认值之外的方法,java,swing,user-interface,Java,Swing,User Interface,到目前为止,我一直使用google工具箱附带的默认主功能来激活我程序的gui,现在我期待着将gui一个接一个地添加到另一个主程序中,我已经添加了class对象,但在运行程序时,只会出现框架和标签,虽然我的字段和按钮需要单击/单击空间以使其可见,但为什么 public LoginGui() { initialize(); uc = new UserCntrl(); } private void initialize() { f

到目前为止,我一直使用google工具箱附带的默认主功能来激活我程序的gui,现在我期待着将gui一个接一个地添加到另一个主程序中,我已经添加了class对象,但在运行程序时,只会出现框架和标签,虽然我的字段和按钮需要单击/单击空间以使其可见,但为什么

public LoginGui() {
        initialize();
        uc = new UserCntrl();   
    }

    private void initialize() {
        frame = new JFrame();
        frame.setBounds(100, 100, 450, 415);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(null);
        frame.setVisible(true); // i have added this line
主要内容:

  • 猜测:在将JFrame设置为可见后,是否会将组件添加到JFrame中?如果是这样,就不要这样做。添加所有组件后调用
    setVisible(true)
  • 另外,不要使用空布局。如果您想避免升级或修改GUI时遇到的麻烦,请使用布局管理器和
    pack()
    调用

谢谢,是的,这就是问题所在,我一开始就设置为可见,而不是在添加的所有组件之后,我也会查看pack()@博格丹:不客气。更重要的是,查看布局管理器的使用情况,避免使用
null
layout。
public static void main(String[] args){
        // init login GUI
        LoginGui loginGuiWindow;
        try {
            loginGuiWindow = new LoginGui();
        } catch (Exception e) {
            e.printStackTrace();
        }