TextFields внутри VBox - PullRequest
       6

TextFields внутри VBox

0 голосов
/ 12 июня 2018

У меня есть список записей и 2 типа TextField с: заполнено и пусто.Я помещаю их в VBox.

for (int i = 0; i < records.size(); i++) {
    if (records.get(i).contains("NEW")) {
        TextField fillField = new TextField();
        vbox.getChildren().add(fillField);
    } else {
        TextField filledField = new TextField();
        filledField.setEditable(false);
        filledField.setText(records.get(i));
        vbox.getChildren().add(filledField);
    }
}

После этого пользователь может заполнить бесплатные TextField с.Как я могу обновить их внутри VBox?

Затем я хочу проверить, являются ли какие-либо из них пустыми (как?), И в этом случае я заполню их "true".

РЕДАКТИРОВАТЬ: Итак, я делаю это:

for (int i = 0; i < vbox.getChildren().size(); i++) {
     if (((TextField) vbox.getChildren().get(i)).getText()==null) {
         TextField filledField = new TextField("true");
         ((TextField) vbox.getChildren().get(i)).setText("true");
         //System.out.println(((TextField)vbox.getChildren().get(i)).getText()); 
     }
}

Моя проблема в том, что когда я печатаю в консоли, я вижу true, когда поле пустое.Но в моем приложении поле остается пустым.Нужно ли обновлять vbox или что-то после обновления всех полей или?

1 Ответ

0 голосов
/ 12 июня 2018

Текст TextField становится null, только если для свойства установлено это значение.Это плохая идея, поскольку вам нужно проверить null и пустую строку (последняя является результатом добавления некоторых символов и удаления их из TextField).

В этомВ случае, если самым простым решением было бы не делать это и использовать String.isEmpty для проверок:

for (String record : records) {
    TextField textField = new TextField();
    if (!record.contains("NEW")) {
        textField.setEditable(false);
        textField.setText(record);
    }
    vbox.getChildren().add(textField);
}
for (Node child : vbox.getChildren()) {
    TextField tf = (TextField) child;
    if (tf.getText().isEmpty()) {
        tf.setText("true");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...