如何在JavaFX中创建TextField数组

时间:2016-03-05 09:39:13

标签: arrays javafx javafx-8

我正在将使用Swing编写的应用程序转换为JavaFX。我需要一个TextField的数组,我可以集体操作,也可以作为数组索引寻址的单个数组成员。以下代码适用于Swing但我在JavaFX中找不到等效代码,使用TextField而不是JTextField。我怎样才能在JavaFX中实现这一目标?

private ArrayList<JTextField> fieldList= new ArrayList<JTextField>();

fieldList.add(fldCompletion);
fieldList.add(fldHrsToDate);
fieldList.add(fldHrsToComplete);

for(JTextField fl : fieldList) {
        fl.setText("");
        fl.setEnabled(true);    //FX equivalent is setDisable(false)
    }

fieldList.get(var).setText("");

3 个答案:

答案 0 :(得分:0)

我也不理解您的问题,因为这部分代码应该在JavaFX中以与Java(Swing)相同的方式工作,而您并没有告诉我们您的实际问题是什么。所以我只是疯狂猜测。也许您刚忘记将文本字段添加到场景图中,因此您什么也看不见。

答案 1 :(得分:0)

道歉 - 这是我的第一篇文章。 我可以实例化ArrayList -

private ArrayList<TextField> fieldList = new ArrayList<TextField>();

但是当我尝试将TextField对象添加到数组时,我得到了语法错误:

fieldList.add(fldCompletion);

此行有多个标记      - 语法错误,插入&#34;)&#34;完成MethodDeclaration      - 令牌上的语法错误&#34;。&#34;,@此符号后的预期      - 语法错误,插入&#34; SimpleName&#34;完成QualifiedName      - 语法错误,插入&#34;标识符(&#34;完成      MethodHeaderName

这个特定字段因此被声明:

@FXML private TextField fldCompletion;

答案 2 :(得分:0)

这样做会很好

TextField[] txt = new TextField[beanFields.length];
for (int i=0; i<=beanFields.length-1; i++) {
                TextField textField = new TextField();
                txt[i] = textField;
                textField.setPrefWidth(200);
                textField.setPrefHeight(32);
}