Swing GridBagLayout - 自动调整大小字段

时间:2013-02-11 19:20:14

标签: java swing

这是一段由netbeans Swing gui设计师生成的代码。 我正在尝试执行以下操作:jLabel1jLabel2将仅包含尺寸为52x46像素且没有文字的图像图标,它们应固定在该行的左侧和右侧{{1}预计将填补jlabels和自动调整大小/全屏/视图宽度之间的差距。

问题是,jTextField2保持相同的宽度,无论窗口/视图的大小是多少......初始宽度取决于字段内硬编码文本的长度...

你有什么想法,怎么做?

jTextField2

1 个答案:

答案 0 :(得分:8)

See documentation of GridBagLayout

GridBagConstraints.weightxGridBagConstraints.weighty

  

用于确定如何分配空间,这对于指定调整大小行为很重要。除非你至少指定一个重量   所有的一个组件(weightx)和列(weighty)   组件在其容器的中心聚集在一起。这是   因为当权重为零(默认值)时,GridBagLayout   object在其单元格和边缘之间放置任何额外的空间   容器。

jTextField2.setText("some text field content");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.RELATIVE;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;

gridBagConstraints.weightx = 1.0; //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

getContentPane().add(jTextField2, gridBagConstraints);