Метод для открытия нового окна

 
 
 
Сообщения:11
Подскажите, вроде легко, но ...
Есть метод
public class openScene {
    public void openNewScene(String ButtonName, String window){
        ButtonName.getScene().getWindow().hide();

        FXMLLoader loader = new FXMLLoader();
        loader.setLocation(getClass().getResource(window));
        try {
            loader.load();
        } catch (IOException e) {
            e.printStackTrace();
        }
        Parent root = loader.getRoot();
        Stage stage = new Stage();
        stage.setScene(new Scene(root));
        stage.showAndWait();
    }
}


Открывает по нажатию на определенную кнопку новое окно. Как передать в него id кнопки, чтобы его можно было реализовывать под разные кнопки в разных классах?
 
 
Сообщения:858
метода не работает - String не имеет методы getScene().
и не совсем понятно, что ты хочешь.
 
 
Сообщения:11
windruf:
метода не работает - String не имеет методы getScene().
и не совсем понятно, что ты хочешь.


Вот изначальная функция:
 public void openNewScene(String window){
        SignUpButton.getScene().getWindow().hide();

        FXMLLoader loader = new FXMLLoader();
        loader.setLocation(getClass().getResource(window));
        try {
            loader.load();
        } catch (IOException e) {
            e.printStackTrace();
        }
        Parent root = loader.getRoot();
        Stage stage = new Stage();
        stage.setScene(new Scene(root));
        stage.showAndWait();
    }


Хочу вынести её в отдельный класс и вызывать и в других классах. Просто передавать название кнопки в функцию.
Сама кнопка служит для открытия нового окна:
SignUpButton.setOnAction(event -> {
            openNewScene("/sample/SignUp.fxml");
        });
Изменен:05 мая 2019 16:17
 
 
Сообщения:858
не понимаю, зачем тебе всё это. функция в таком виде достаточно универсальная.
 
 
Сообщения:11
Думаешь проще переписывать ее в других классах?
 
 
Сообщения:858
не, сделай её статической. у неё нет обращений к полям класса.
а прятать кнопку можно либо передать кнопку в методу либо делать это перед вызовом методы.
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет