JavaFX. Взаимодействие Controller и Aplication

145
17 января 2019, 10:50

Я создаю приложение. Есть основной функционал, но хотелось бы видеть его функциональность в виде счетчика. Нужно сделать так, чтобы из класса Main:

public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception{
    Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
    primaryStage.setScene(new Scene(root, 230, 100));
    primaryStage.setMaxHeight(100);
    primaryStage.setMinHeight(100);
    primaryStage.setMaxWidth(230);
    primaryStage.setMinWidth(230);
    primaryStage.show();
}

public static void main(String[] args) {
    launch(args);
}
}

был доступ к контроллеру. Я хочу в Main взаимодействовать с системой, а контроллером пользоваться только для того, чтобы обновлять значение счетчика.
Можно ли получить доступ из Main в контроллер?

Answer 1

Создайте экземпляр FXMLLoader, тогда после выполнения loader.load() контроллер можно получить из него loader.getController().
И помните, что обращаясь из Main к графическим элементам в контроллере запрос нужно обернуть в Platform.runLater для выполнения в графическом fx потоке. А можно и не делать и познакомиться с эксепшеном.

READ ALSO
Хранилище Массивов

Хранилище Массивов

Когда создадим массив, например, типа char, где он сохраняется - в heap, stack или pool?

176
Не отображается желаемый спец-символ (css)

Не отображается желаемый спец-символ (css)

Пожалуйста подскажите, почему не отображается необходимый мне символ: По идее должна появиться стрелка http://wwwtemplatebest

193
Что такое css selector level?

Что такое css selector level?

Читаю статью про список css селекторов, объясните пожалуйста что значит css level и почему в таблице из статьи разные селекторы имеют различный...

147
На iphone появляется лишний border

На iphone появляется лишний border

Проверял отображение на мобильных и заметил что появляется лишний border в формахЯ прикрепил пример для input прописан только нижний border, но на мобильных...

206