Java中的GUI ..生成运行时组件

时间:2011-07-25 15:31:19

标签: java swing

我有一个用户界面,用户在textfeild中输入一个数字(例如10) 然后,如果用户按下回车,我想在同一个用户界面中生成10个文本字段。

我该怎么做?

4 个答案:

答案 0 :(得分:2)

类似的东西:

// Assuming myOrigTextField is your original JTextField
int howMany = Integer.parseInt(myOrigTextField.getText());
JTextField[] jtfs = new JTextField[howMany];

for (int i = 0; i < jtfs.length; ++i) {
   jtfs[i] = new JTextField();
   myPanelToAddThem.add(jtfs[i]);
}

答案 1 :(得分:1)

创建文本字段对象, 将它们添加到您的容器中。

使用循环以任意数字执行此操作。

发布一些代码和您的具体问题以获得更多帮助。

答案 2 :(得分:1)

粗略地假设你正在使用布局管理器的一些事情,我会说:

public List<JTextField> addComponents( int number ) {
    List<JTextField> fields = new ArrayList<JTextField>( number );
    for( int i = 0; i < number; i++ ) {
        fields.add( new JTextField() );
        panelToAddComponentsTo.add( fields.get( i ) );
    }
    return fields;
}

答案 3 :(得分:1)

  

如果用户按下我想要的输入?文本字段将在同一用户界面中生成

将ActionListener添加到文本字段。按下Enter键时将调用ActionListener。

在ActionListener代码中,您需要解析输入的数字,然后循环以创建文本字段并将其添加到面板:

for (...)
{
    panel.add( new JTextField(...) );
}

panel.revalidate(); // needed when dynamically adding/removing components
panel.repaint(); // sometimes needed