这是一段由netbeans Swing gui设计师生成的代码。
我正在尝试执行以下操作:jLabel1
和jLabel2
将仅包含尺寸为52x46像素且没有文字的图像图标,它们应固定在该行的左侧和右侧{{1}预计将填补jlabels和自动调整大小/全屏/视图宽度之间的差距。
问题是,jTextField2
保持相同的宽度,无论窗口/视图的大小是多少......初始宽度取决于字段内硬编码文本的长度...
你有什么想法,怎么做?
jTextField2
答案 0 :(得分:8)
See documentation of GridBagLayout
GridBagConstraints.weightx,GridBagConstraints.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);