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

使用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日

悬赏问题

  • ¥15 机器学习预测遇到的目标函数问题
  • ¥15 python的EOFError该怎么解决?
  • ¥15 Fluent,液体进入旋转区域体积分数不连续
  • ¥15 java linux下将docx文件转pdf
  • ¥15 maven无法下载依赖包
  • ¥15 关于pycharm, Callable[[str],bool]作为方法参数使用时, lambda 类型不提示问题
  • ¥15 layui数据重载无效
  • ¥15 寻找了解qq家园纵横四海的程序猿。
  • ¥15 optisystem
  • ¥15 VB.NET画图时的撤销编程