Редактировать элементы пользовательского интерфейса, созданные в fxml из класса контроллера - JavaFX

1

Я создал текстовую область в файле fxml и хочу добавить ее при нажатии кнопки.

Как получить доступ к текстовой области из класса контроллера, чтобы я мог добавить к ней?

Теги:
javafx
fxml

1 ответ

3
Лучший ответ

Добавьте fx: id в TextArea в ваш.fxml файл.

<TextArea fx:id="myTextArea"/>
<Button fx:id="myButton"/>

Перейдите к файлу контроллера (java) и подключите его к файлу fxml:

@FXML
private TextArea myTextArea;

@FXML
private Button myButton;

Теперь вы можете делать все, что хотите, с помощью текстовой области.

myButton.setOnAction(new EventHandler<ActionEvent>(){
    @Override
    public void handle(ActionEvent event){
        myTextArea.appendText("Stackoverflow rockz");
    }
}
  • 0
    Это прекрасно работает для всех, кроме этого случая. Я определяю свою текстовую область: <TextArea fx: id = "txtArea" />, а затем определяю ее в контроллере: @FXML private TextArea txtArea; но как только я это сделаю, я получаю сообщение об ошибке на fx: id = "txtArea", говорящее "Невозможно установить javafx.scene.control.TextArea в поле 'txtArea'"
  • 0
    Вы импортировали правильный класс TextArea? Похоже, ваш импорт TextArea в Java не совпадает с импортом в FXML. Вы можете проверить это. Возможно, в java вы взяли java.awt вместо TextArea из java.fx?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню