我试图在单个行上有几个JTextField,但是我不希望它们具有相同的宽度.如何控制宽度并使其中的一些比其他宽度更宽?我想要他们一起占据总宽度的100%,所以如果我可以使用某种方式,这将是很好的.
我已经尝试过.setColumns(),但没有任何意义.
这里是一个例子,我使用三行,三行应显示为列:
import java.awt.GridLayout; import javax.swing.BoxLayout; import javax.swing.JComponent; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField; public class RowTest extends JPanel { class Row extends JComponent { public Row(String str1,String str2,String str3) { this.setLayout(new BoxLayout(this,BoxLayout.X_AXIS)); JTextField fld1 = new JTextField(str1); JTextField fld2 = new JTextField(str2); JTextField fld3 = new JTextField(str3); fld1.setColumns(5); // makes no sense this.add(fld1); this.add(fld2); this.add(fld3); } } public RowTest() { this.setLayout(new GridLayout(5,0)); this.add(new Row("Short","A long text that takes up more space","Short again")); this.add(new Row("Longer but short","Another long string","Short")); this.add(new Row("Hello","The long field again","Some info")); } public static void main(String[] args) { new JFrame() {{ this.getContentPane().add(new RowTest()); this.pack(); this.setVisible(true); }}; } }