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

时间:2011-12-01 12:20:48

标签: javafx-2

如何删除JavaFX阶段按钮(最小化,最大化,关闭)?根据{{​​1}}方法无法找到任何方法,我应该在舞台上使用样式吗?实现像StageErrorWarning这样的对话窗口是必要的。

9 个答案:

答案 0 :(得分:58)

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

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

或者如果你想要禁用最大化并最小化除了关闭使用

stage.initStyle(StageStyle.UTILITY);

或者如果要删除所有三个,请使用

stage.initStyle(StageStyle.UNDECORATED);

答案 1 :(得分:21)

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

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 these examples非常有用。

答案 2 :(得分:9)

primaryStage.setResizable(false);

答案 3 :(得分:7)

primaryStage.initStyle(StageStyle.UTILITY);

答案 4 :(得分:5)

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

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

如果你喜欢lambdas

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

答案 5 :(得分:2)

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

答案 6 :(得分:1)

我在这里找到了这个答案 - &gt; 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 :(得分:0)

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

答案 8 :(得分:0)

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

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