JTextField 太小/似乎无法格式化

问题描述 投票:0回答:1

我正在尝试格式化这些 JTextFields,它们工作正常。然而,每当我添加第 4 行和第 5 行时,JTextfields 就会变得像 1 个字符长(如屏幕截图所示)。我没有看到任何语法错误或任何东西,因为第一行到第三行本身工作得很好——所以我假设我只是不知道布局管理器或其他东西的一些限制。

enter image description here

public PatientTab () {
        
        GridBagConstraints gbc = new GridBagConstraints();
        setLayout(new GridBagLayout());
        
        ButtonGroup sexGroup = new ButtonGroup();
                sexGroup.add(maleRadioButton);
                sexGroup.add(femaleRadioButton);
        
        //row 1
        gbc.gridx = 0;
                gbc.gridy = 0;
        add(new JLabel("First Name:"), gbc);
        gbc.gridx = 1;
        add(fName, gbc);
        
        gbc.gridx = 2;
        add(new JLabel("Middle Initial:"), gbc);
        gbc.gridx = 3;
        add(mName, gbc);
        
        gbc.gridx = 4;
        add(new JLabel("Last Name:"), gbc);
        gbc.gridx = 5;
        add(lName, gbc);
        
        // Row 2
            gbc.gridx = 0;
            gbc.gridy = 1;
            add(new JLabel("Sex:"), gbc);

            gbc.gridx = 1;
            add(maleRadioButton, gbc);

            gbc.gridx = 2;
            add(femaleRadioButton, gbc);
        
            // Row 3
            gbc.gridx = 0;
            gbc.gridy = 2;
        add(new JLabel("SSN:"), gbc);
        
        gbc.gridx = 1;
        add(ssn, gbc);
        
        gbc.gridx = 2;
        add(new JLabel("Primarary-care Doctor:"), gbc);
        
        gbc.gridx = 3;
        add(primaryDoctor, gbc);
        
        // Row 4
        gbc.gridx = 0;
            gbc.gridy = 3;
        add(new JLabel("Secondary-care Doctor:"), gbc);
        
        gbc.gridx = 1;
        secondaryDoctor.setPreferredSize(new Dimension(10,20));
        add(secondaryDoctor, gbc);
        
        
        // Row 5
        gbc.gridx = 0;
        gbc.gridy = 4;
        add(new JLabel("Current Phone Number:"), gbc);
        
        gbc.gridx = 1;
        add(currentPhone, gbc);
        
        
        /*gbc.gridx = 0;
        gbc.gridy = 1;
        add(addButton, gbc);*/
        
    }
java swing user-interface jtextfield
1个回答
0
投票

有时需要设置框架或面板的尺寸。方法

pack()
也可以帮助:

 frame.pack();
 frame.setMinimumSize(frame.getSize());
© www.soinside.com 2019 - 2024. All rights reserved.