不是颜 2024-09-24 18:42 采纳率: 55.6%
浏览 14

使用GridBagLayout布局管理器,组件无法完全显示

我在Java的代码中使用GridBagLayout时,发现我布局的组件,并没有完全显示。

package test;

import javax.swing.*;
import java.awt.*;

public class TestLayout {
    public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.setSize(600,450);

        JLabel jLabel = new JLabel("账号:");
        JTextField jTextField = new JTextField();

        GridBagLayout gbl = new GridBagLayout();
        frame.setLayout(gbl);
        GridBagConstraints gbc = new GridBagConstraints();
        gbc.fill = GridBagConstraints.BOTH;

        gbc.gridx = 0;
        gbc.gridy = 4;
        gbc.gridwidth = 1;
        gbc.gridheight = 1;
        gbl.setConstraints(jLabel,gbc);

        gbc.gridx = 1;
        gbc.gridy = 4;
        gbc.gridwidth =3;
        gbc.gridheight = 1;
        gbl.setConstraints(jLabel,gbc);

        frame.add(jLabel);
        frame.add(jTextField);
        frame.setVisible(true);

    }
}

初步思路:
是不是我添加的组件太少,导致不能使布局展开,所以我的组件才无法完全显示。(之前没接触过布局管理器)

操作环境:
IDEA、JDK21

  • 写回答

2条回答 默认 最新

  • 不是颜 2024-09-24 19:59
    关注

    解决了,首先我两次都是设置标签的位置和大小,所以位置上不对。第二,我没有设置单行输入框JTextField初始可容纳字符,所以输入框就只剩下了一个框。

    img

    修改JTextField构造函数的参数为10后:

    img

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 9月24日