如何调整Swing文本字段的大小?

时间:2011-03-30 13:53:05

标签: java textfield jtextfield

我写了下面的代码:

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使用,但它不起作用!!。

5 个答案:

答案 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

的对象将布局设置为null
information.setLayout(null);

使用setBounds方法设置JTextField的边界:

textField.setBounds(0,0,100,100);