Подтвердить что ты не робот

Как удалить кнопки сцены JavaFX (свернуть, увеличить, закрыть)

Как удалить кнопки сцены JavaFX (минимизировать, максимизировать, закрыть)? Не можете найти какие-либо методы Stage, так что я должен использовать стиль для сцены? Это необходимо для реализации диалоговых окон типа Error, Warning, Info.

4b9b3361

Ответ 1

Если вы хотите отключить только кнопку максимизации, используйте:

stage.resizableProperty().setValue(Boolean.FALSE);

или если вы хотите отключить максимизацию и минимизацию, кроме близкого использования

stage.initStyle(StageStyle.UTILITY);

или если вы хотите удалить все три, используйте

stage.initStyle(StageStyle.UNDECORATED);

Ответ 2

Вам просто нужно установить стиль сцены. Попробуйте этот пример:

package undecorated;

import javafx.application.Application;
import javafx.stage.StageStyle;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class UndecoratedApp extends Application {

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

    @Override
    public void start(Stage primaryStage) {
        primaryStage.initStyle(StageStyle.UNDECORATED);

        Group root = new Group();
        Scene scene = new Scene(root, 100, 100);

        primaryStage.setScene(scene);
        primaryStage.show();
    }
}

При изучении JavaFX 2.0 эти примеры очень полезны.

Ответ 3

primaryStage.setResizable(false);

Ответ 4

primaryStage.initStyle(StageStyle.UTILITY);

Ответ 5

У меня есть одна и та же проблема, похоже, что в javafx в данный момент невозможно использовать неэкранированное, но перетаскиваемое/озаглавленное окно (для эстетического). Самый близкий подход - использовать событие закрытия.

stage.setOnCloseRequest(new EventHandler<WindowEvent>() {
                @Override
                public void handle(WindowEvent event) {
                    event.consume();
                }
            });

Если вам нравится lambdas

stage.setOnCloseRequest(e->e.consume());

Ответ 6

Я нашел здесь этот ответ → http://javafxportal.blogspot.ie/2012/03/to-remove-javafx-stage-buttons-minimize.html Мы можем это сделать:

enter code here
 @Override
    public void start(Stage primaryStage) {
        primaryStage.initStyle(StageStyle.UNDECORATED);

        Group root = new Group();
        Scene scene = new Scene(root, 100, 100);

        primaryStage.setScene(scene);
        primaryStage.show();
    }

Ответ 7

stage.initModality(Modality.APPLICATION_MODAL);
stage.setResizable(false);

Ответ 8

stage.initStyle(StageStyle.DECORATED);
stage.setResizable(false);