如何删除JavaFX阶段按钮(最小化,最大化,关闭)

javafx-2

50515 观看

9回复

803 作者的声誉

如何删除JavaFX阶段按钮(最小化,最大化,关闭)?找不到任何相应的Stage方法,所以我应该为舞台使用风格吗?因此有必要实现对话窗口一样ErrorWarningInfo

作者: Anton 的来源 发布者: 2011 年 12 月 1 日

回应 (9)


21

3272 作者的声誉

你只需设置舞台的风格。试试这个例子:

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时,这些示例非常有用。

作者: pmoule 发布者: 01.12.2011 02:34

7

994 作者的声誉

primaryStage.initStyle(StageStyle.UTILITY);
作者: hemisphire 发布者: 16.09.2013 08:04

9

199 作者的声誉

primaryStage.setResizable(false);
作者: jnr 发布者: 02.12.2013 04:41

57

1535 作者的声誉

如果您只想禁用最大化按钮,请使用:

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

或者如果你想禁用最大化和最小化,除了密切使用

stage.initStyle(StageStyle.UTILITY);

或者如果你想删除所有三个然后使用

stage.initStyle(StageStyle.UNDECORATED);
作者: Shardendu 发布者: 07.06.2014 06:16

2

21 作者的声誉

stage.initModality(Modality.APPLICATION_MODAL);
stage.setResizable(false);
作者: Rostislav Viner 发布者: 25.01.2016 03:09

5

550 作者的声誉

我有同样的问题,看起来像一个未装饰但可拖动/标题的窗口(为审美起见)在javafx目前是不可能的。最接近的方法是使用close事件。

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

如果你喜欢lambdas

stage.setOnCloseRequest(e->e.consume());
作者: Wesos de Queso 发布者: 16.07.2016 03:44

0

376 作者的声誉

stage.initStyle(StageStyle.DECORATED);
stage.setResizable(false);
作者: Sid 发布者: 20.04.2017 01:35

1

11 作者的声誉

我在这里找到了这个答案 - > 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();
    }
作者: Anderson 发布者: 23.10.2017 02:33

0

409 作者的声誉

您可以实现此目的,在舞台对象上调用以下方法

stage.initModality(Modality.APPLICATION_MODAL); // makes stage act as a modal
stage.setMinWidth(250); // sets stage width
stage.setMinHeight(250); // sets stage height
stage.setResizable(false); // prevents resize and removes minimize and maximize buttons
stage.showAndWait(); // blocks execution until the stage is closed
作者: Joshua 发布者: 17.03.2019 06:08
32x32