Java GridBagLayout 默认在编译时左上角

问题描述

我在 Eclipse 中使用 WindowBuilder 来设计 GUI。带有用户名和密码的面板有一个 gridbaglayout。这是我在 WindowBuilder 的设计部​​分设置组件的方式:

See image of GUI in the window builder

但这就是我实际运行和编译代码时的显示方式:

See image when compiled here

生成代码

JPanel panelTop = new JPanel();
        panelTop.setBounds(10,11,414,170);
        contentPane.add(panelTop);
        GridBagLayout gbl_panelTop = new GridBagLayout();
        gbl_panelTop.columnWidths = new int[]{0,25,0};
        gbl_panelTop.rowHeights = new int[]{0,0};
        gbl_panelTop.columnWeights = new double[]{0.0,0.0,1.0,Double.MIN_VALUE};
        gbl_panelTop.rowWeights = new double[]{0.0,Double.MIN_VALUE};
        panelTop.setLayout(gbl_panelTop);
        
        JLabel lblUsername = new JLabel("Username:");
        GridBagConstraints gbc_lblUsername = new GridBagConstraints();
        gbc_lblUsername.insets = new Insets(0,5,5);
        gbc_lblUsername.gridx = 2;
        gbc_lblUsername.gridy = 2;
        panelTop.add(lblUsername,gbc_lblUsername);
        
        txtUsername = new JTextField();
        GridBagConstraints gbc_txtUsername = new GridBagConstraints();
        gbc_txtUsername.insets = new Insets(0,5);
        gbc_txtUsername.fill = GridBagConstraints.HORIZONTAL;
        gbc_txtUsername.gridx = 4;
        gbc_txtUsername.gridy = 2;
        panelTop.add(txtUsername,gbc_txtUsername);
        txtUsername.setColumns(10);
        
        JLabel lblPassword = new JLabel("Password:");
        GridBagConstraints gbc_lblPassword = new GridBagConstraints();
        gbc_lblPassword.insets = new Insets(0,5);
        gbc_lblPassword.gridx = 2;
        gbc_lblPassword.gridy = 4;
        panelTop.add(lblPassword,gbc_lblPassword);
        
        pwdPassword = new jpasswordfield();
        GridBagConstraints gbc_pwdPassword = new GridBagConstraints();
        gbc_pwdPassword.insets = new Insets(0,5);
        gbc_pwdPassword.fill = GridBagConstraints.HORIZONTAL;
        gbc_pwdPassword.gridx = 4;
        gbc_pwdPassword.gridy = 4;
        panelTop.add(pwdPassword,gbc_pwdPassword);

谁能告诉我如何解决这个问题?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)