我正在将使用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("");
答案 0 :(得分:0)
我也不理解您的问题,因为这部分代码应该在JavaFX中以与Java(Swing)相同的方式工作,而您并没有告诉我们您的实际问题是什么。所以我只是疯狂猜测。也许您刚忘记将文本字段添加到场景图中,因此您什么也看不见。
答案 1 :(得分:0)
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);
}