我写了下面的代码:
public class Information extends JFrame{
private JComboBox comboBox1;
private JComboBox comboBox2;
private JTextField textField[];
private JTextField jtextField;
private JLabel label[];
public Information()
{
setLayout(new flowlayout());
Box box = Box.createVerticalBox();
for(int i = 0; i < 20; i++)//textfield
{
textField = new JTextField[20];
box.add(Box.createRigidArea(new Dimension(5,5)));
textField[i] = new JTextField(2);
textField[i].setAlignmentX(2f);
textField[i].setAlignmentY(2f);
box.add(textField[i]);
}
for(int i = 0; i < 22; i++ )//lable
{
}
add(box);
}
}
我希望文本字段以我最喜欢的尺寸显示,但它会填满整个屏幕。
我用过
textField[i].setAlignmentX(2f);
textField[i].setAlignmentY(2f);
和setcolum()
,但没有调整文本字段的大小。如何减少文本字段的大小?
我使用
setMaximumSize(new Dimension(80, 70));
setPreferredSize(new Dimension(50, 50));
他们调整了文本字段的大小,但更改了它的位置,但我不想更改他们的
location.is有什么方式比我更改文本字段位置?
我从setlocation使用,但它不起作用!!。
答案 0 :(得分:4)
答案 1 :(得分:0)
我相信你想使用setBounds
,它将宽度和高度作为参数。
答案 2 :(得分:0)
setAlignment
方法更改其容器中组件的对齐方式,而不是组件的实际大小。我想你正在寻找JTextField
的{{3}}。总是有继承的setColumns()
method。
答案 3 :(得分:0)
尝试setPreferredSize(),这个(以及setMinimum / MaximumSize())倾向于被很多LayoutManagers使用,包括FlowLayout来适当调整容器的组件大小。
另外,作为旁注,看起来你正在为for循环中的每次迭代重新创建JTextAreas数组,因此只存在textField [19] ......
答案 4 :(得分:0)
我认为您要为文本字段设置特定大小。 去做这个 : 首先使用Information class
的对象将布局设置为nullinformation.setLayout(null);
使用setBounds方法设置JTextField的边界:
textField.setBounds(0,0,100,100);