Java Swing GridBagLayout-自动调整字段大小
这是从netbeans Swing gui设计器生成的一段代码。 我正在尝试执行以下操作:Java Swing GridBagLayout-自动调整字段大小,java,swing,Java,Swing,这是从netbeans Swing gui设计器生成的一段代码。 我正在尝试执行以下操作:jLabel1和jLabel2将只包含尺寸为52x46 px的图像图标,不包含文本,它们应该固定在行的左侧和右侧,jTextField2有望填补jlabels和自动调整到全屏/视图宽度之间的空白 问题是,无论窗口/视图的大小如何,jTextField2都保持相同的宽度。。。初始宽度取决于字段内硬编码文本的长度 你知道怎么做吗 private void initComponents() { javax
jLabel1
和jLabel2
将只包含尺寸为52x46 px的图像图标,不包含文本,它们应该固定在行的左侧和右侧,jTextField2
有望填补jlabels和自动调整到全屏/视图宽度之间的空白
问题是,无论窗口/视图的大小如何,jTextField2
都保持相同的宽度。。。初始宽度取决于字段内硬编码文本的长度
你知道怎么做吗
private void initComponents() {
javax.swing.JLabel jLabel1;
javax.swing.JLabel jLabel2;
javax.swing.JTextField jTextField2;
java.awt.GridBagConstraints gridBagConstraints;
jLabel1 = new javax.swing.JLabel();
jTextField2 = new javax.swing.JTextField();
jLabel2 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
getContentPane().setLayout(new java.awt.GridBagLayout());
jLabel1.setText("ABC");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
getContentPane().add(jLabel1, gridBagConstraints);
jTextField2.setText("some text field content");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.RELATIVE;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
getContentPane().add(jTextField2, gridBagConstraints);
jLabel2.setText("ABC");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_END;
getContentPane().add(jLabel2, gridBagConstraints);
pack();
}
,
用于确定如何分配空间,这对于指定大小调整行为很重要。除非您为至少指定了一个重量
行(weightx)和列(weighty)中的一个组件,所有
组件在其容器的中心聚集在一起。这是
因为当权重为零(默认值)时,GridBagLayout
对象在其单元格网格和网格边缘之间放置任何额外的空间
集装箱
jTextField2.setText(“一些文本字段内容”);
gridBagConstraints=new java.awt.gridBagConstraints();
gridBagConstraints.gridwidth=java.awt.gridBagConstraints.RELATIVE;
gridBagConstraints.fill=java.awt.gridBagConstraints.HORIZONTAL;
gridBagConstraints.weightx=1.0//
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);