Java 无法在GridBagLayout中调整JTextField和JScrollPane的大小

Java 无法在GridBagLayout中调整JTextField和JScrollPane的大小,java,swing,jtextfield,jscrollpane,gridbaglayout,Java,Swing,Jtextfield,Jscrollpane,Gridbaglayout,我想减少GridBagLayout中JTextField和JScrollPane的宽度和高度,但通过设置文本字段列,宽度似乎只能减少到JList中最长内容的长度。我不确定是否需要调整组件的两个或一个大小以匹配宽度 我尝试了setPreferredSize()、setSize()和在文本字段上设置列长度,但它们似乎没有任何作用 您必须设置列的最小和首选大小以控制大小。覆盖它们,使其成为您想要的 组件添加到GridBagLayout中的单元格时,将以其首选大小显示 c.fill = GridBag

我想减少GridBagLayout中JTextField和JScrollPane的宽度和高度,但通过设置文本字段列,宽度似乎只能减少到JList中最长内容的长度。我不确定是否需要调整组件的两个或一个大小以匹配宽度

我尝试了setPreferredSize()、setSize()和在文本字段上设置列长度,但它们似乎没有任何作用


您必须设置列的最小和首选大小以控制大小。覆盖它们,使其成为您想要的

组件添加到GridBagLayout中的单元格时,将以其首选大小显示

c.fill = GridBagConstraints.HORIZONTAL;
您使用的是水平填充,它告诉布局将所有组件的宽度填充到列中的最大宽度,从而覆盖首选尺寸

如果您不希望文本字段的宽度增加,请摆脱该约束

然后,在创建要使用的文本字段时:

JTextField textField = new JTextField(10);

该数字将允许文本字段确定其自己的首选大小,以容纳10个“W”字符。

尝试设置
JScrollPane
的首选大小。
JTextField textField = new JTextField(10);