Пишу свое первое приложение на JavaFX - чат. Столкнулся с проблемой обновления данных в компоненте сцены JavaFX - textArea. Этот компонент инициализируется только один раз при загрузке сцены из FXML файла в классе контроллере методом void initialize(). При работе чата я хотел сделать традиционную модель MVC. Идея проста - контроллер(клиент) меняет модель данных и параллельно заставляет view часть(конкретно переменную textArea)обновляться данными, вытягиваемые из модели. Но не тут то было, застрял на реализации обновления данных в textArea(где отображаются сообщения пользователей). Переменную textArea, как я понял, нельзя обновлять вне метода void initialize(). В голове крутится вариант каждый раз обновлять всю сцену при обновлении модели, но ведь это затратно... Может быть, кто-нибудь подскажет как решаются проблемы такого характера. Буду очень благодарен
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception{
Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
primaryStage.setTitle("Hello World");
primaryStage.setScene(new Scene(root, 300, 275));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
public class Controller {
@FXML
private TextArea textChatArea;
@FXML
void initialize() throws InterruptedException {
setMessage("Hello");
}
public void setMessage(String message) {
textChatArea.setText(message);
}
}
public class Model {
public static void main(String[] args) throws InterruptedException {
Controller controller = new Controller();
controller.setMessage("Hello");
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
В коде имеется сервис, который разрешает/отклоняет HTTP запрос в зависимости от времени (до 11:00 разрешено, после - запрещено)На текущий момент...
По нажатию на кнопки в подменю с определенным размером окна должен установится данный размер окна,но этого не происходитНе могу понять почему