2014-09-09 4 views
0

Я пытаюсь манипулировать текстом в TextField, сгенерированном Scene Builder. Мой контроллер выглядит так:JavaFX Контроллер компоновщика сцен

@FXML 
private TextField textDescr; 

public void initialize(URL fxmlFileLocation, ResourceBundle resources) { 
    textDescr = new TextField(); 
    assert textDescr != null : "fx:id=\"textDescr\" was not injected: check your FXML file 'provingGroundsUI.fxml'."; 
    Game.mainFSM.enter(); 
} 
public void setText(String s) { 
    // TODO Auto-generated method stub 
    textDescr.setText(s); 
} 

Я получаю исключение NullPointerException. Я пробовал бот с и без части textDescr = new TextField();. Я не совсем понимаю ... Я думал, что JavaFX инициализировал все переменные пользовательского интерфейса в начале программы.

+0

'FX ли: id' из TextField в FXML совпадать с именем поля в контроллере? Другими словами, существует ли

+0

Да, у него есть правильный fx: id – pieAre5quare

+0

Убедитесь, что вы @Override метод initialize. – Wamasa

ответ

1
  1. Как выглядит ваш FXML?
  2. Для манипулирования textDescr в setText Функция имеет много рисков. Лучше использовать переплетены StringProperty:


    @FXML 
    private Text textDescr; 

    private StringProperty textProperty = new SimpleStringProperty(); 

    @FXML 
    void initialize() { 
      assert textDescr != null : "fx:id=\"textDescr\" was not injected: check your FXML file 'TestView.fxml'."; 
      textDescr.textProperty().bind(textProperty); 
    } 

    public ReadOnlyStringProperty textProperty(){ 
      return textProperty; 
    } 

0

Ваш класс контроллер должен осуществлять Initializable

@FXML аннотацию показывает, что поле будет инициализирован JavaFX. Поэтому убедитесь, что вы удалите new TextField вещь.

Вы уверены, что назначили этот контроллер в FXML?

+0

Контроллер реализует 'Initializable', и контроллер был сохранен в FXML. – pieAre5quare

+0

Затем, что такое импорт TextField? Я надеюсь, что это не 'java.awt.TextField' – galovics

+0

' import javafx.scene.control.TextField; ' – pieAre5quare

Смежные вопросы