0
我正在試圖製作一個UI,通過按按鈕添加的文本字段獲取數字,添加數字,然後打印控制檯。我已經想出瞭如何添加無限數量的文本字段,但我似乎無法從每個文本字段中獲取所有數字並將其打印出來。每當我將數字放入我的文本框並按下我的「添加數字」按鈕,它只會返回添加的最新文本字段中的數字。這裏是我的代碼:如何將多個文本字段添加到數組列表JavaFX
public VBox pane;
@FXML
private Button addButton;
@FXML
private TextField field;
@FXML
private void addNewTextField(ActionEvent event) {
field = new TextField();
field.textProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
if (!newValue.matches("\\d*")) {
field.setText(newValue.replaceAll("[^\\d]", ""));
}
}
});
pane.getChildren().add(field);
}
@FXML
private void addNumbers(ActionEvent e) {
ArrayList<Integer> numList = new ArrayList<>();
try {
ArrayList<Integer> list = new ArrayList<>();
int result = Integer.parseInt(field.getText());
list.add(result);
int sum = 0;
for (int i : list) {
sum += result;
System.out.println("The sum of numbers is = " + sum);
}
} catch (NumberFormatException exception) {
exception.printStackTrace();
}
}
}
使'field'成爲局部變量,而不是實例字段。 –
因此,將字段設置爲公共變量 – koory
如果您的'TextField'的'Pane's只包含'TextField's,那麼您需要使用'Pane'來獲取'TextField's。在你的'addNumber(..)'方法中使用'pane.getChildren()'。 – Sedrick