Я хочу открыть новое окно в контроллере другого окна через другой класс. На пример вот функция которая находится в контроллере:
public void openNewScene(String Window) {
search.setVisible(false);
playButton.getScene().getWindow().hide();
FXMLLoader loader =new FXMLLoader();
loader.setLocation(getClass().getResource(Window));
Const.gameController = (GameController) loader.getController();
try {
loader.load();
}catch (IOException e) {
e.getMessage();
}
Parent root = loader.getRoot();
final Stage stage = new Stage();
stage.initStyle(StageStyle.TRANSPARENT);
root.setOnMousePressed(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
xOffset = event.getSceneX();
yOffset = event.getSceneY();
}
});
root.setOnMouseDragged(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
stage.setX(event.getScreenX() - xOffset);
stage.setY(event.getScreenY() - yOffset);
}
});
stage.setScene(new Scene(root));
stage.setResizable(false);
stage.show();
}
Она вызывается в другом классе(мини-сервере) когда туда посылается опред. сигнал:
if (type == MessageTypes.SEARCH_REPLY) {
Const.menuController.openNewScene("/Main/GameWindow/GameWindow.fxml");
}
Но после этого я получаю исключение
Exception in thread "Thread-3" java.lang.IllegalStateException: Not on FX application thread; currentThread = Thread-3
at javafx.graphics/com.sun.javafx.tk.Toolkit.checkFxUserThread(Toolkit.java:291)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.checkFxUserThread(QuantumToolkit.java:423)
at javafx.graphics/javafx.stage.Window.setShowing(Window.java:1185)
at javafx.graphics/javafx.stage.Window.hide(Window.java:1211)
at Main.Menu.MenuController.openNewScene(MenuController.java:207)
at Main.ClientServer.run(ClientServer.java:40)
Это означает что я хочу обраться к FX объекту не через FX поток и нужно добавить Platform.runLater, НО я не понимаю куда. Ведь куда бы я не сунул везде ошибка о том что это не подходит..
Виртуальный выделенный сервер (VDS) становится отличным выбором
Какие стили css присваиваются браузерами по умолчанию?
работаю с gulp поставил модуль normalizecss хочу его стили импортировать в scss если импортировать по типу: