Стадия мигания под нагрузкой - PullRequest
0 голосов
/ 04 февраля 2020

Мне нужно максимизировать Stage при загрузке через код.

Вот мой код:

public class Main extends Application {

@Override
public void start(Stage primaryStage) {
    try {
        Parent root = FXMLLoader.load(getClass().getResource("Main.fxml"));
        Scene scene = new Scene(root);
        scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
        primaryStage.setScene(scene);
        primaryStage.setTitle("Контрола трошкова кућног буџета");
        primaryStage.setMaximized(true);
        primaryStage.show();
    } catch(Exception e) {
        e.printStackTrace();
    }
}

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

У меня есть все необходимые импортные данные. Проблема заключается в том, что при его запуске primaryStage мигает в течение доли секунды, созданной в Scene Builder, затем максимизируется, как и предполагалось, и я хочу, чтобы он отображался как Maximized. Это произошло в Eclipse, и когда я запустил исполняемый JAR и запустил его с файлом * .bat.

Что-то я делаю не так?

Для тестирования я создал небольшое приложение в WPF, оно работает нормально, не мигает.

РЕДАКТИРОВАТЬ: Когда сценический процесс имеет нормальный размер, и я нажимаю кнопку «Развернуть», он максимизирует сцену, как я хочу. Есть ли возможность написать код для симуляции или вызвать кнопку «Развернуть» в верхней части окна? Другой путь, кроме

 stage.setMaximized(true);

, потому что эта строка не работает.

1 Ответ

1 голос
/ 06 февраля 2020

Вот обходной путь, установите непрозрачность стадии на 0, прежде чем показывать ее, чтобы изменение размера происходило, когда сцена не видна, затем измените его обратно на 1:

primaryStage.setOpacity(0);
primaryStage.show();
primaryStage.setOpacity(1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...