JavaFX primaryStage是否删除windows边框?

JavaFX primaryStage是否删除windows边框?,java,user-interface,jakarta-ee,javafx,javafx-2,Java,User Interface,Jakarta Ee,Javafx,Javafx 2,我正在制作JavaFX destop应用程序。我想删除默认窗口边框,还想自定义最小化、最大化和关闭三个标准图标 这种外观或定制的最初动机是新的卡巴斯基2012用户界面。。。。我想设计这样的东西…:) 这个例子可能是一个很好的起点。所有的窗户装饰都被拆除了。扩展HBox的类可用于放置标准窗口操作的自定义按钮 package javafxdemo; import javafx.application.Application; import javafx.application.Platform;

我正在制作JavaFX destop应用程序。我想删除默认窗口边框,还想自定义最小化、最大化和关闭三个标准图标


这种外观或定制的最初动机是新的卡巴斯基2012用户界面。。。。我想设计这样的东西…:)

这个例子可能是一个很好的起点。所有的窗户装饰都被拆除了。扩展HBox的类可用于放置标准窗口操作的自定义按钮

package javafxdemo;

import javafx.application.Application;
import javafx.application.Platform;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.ToolBar;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;
import javafx.stage.StageStyle;

public class JavaDemo extends Application {

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

    class WindowButtons extends HBox {

        public WindowButtons() {
            Button closeBtn = new Button("X");

            closeBtn.setOnAction(new EventHandler<ActionEvent>() {

                @Override
                public void handle(ActionEvent actionEvent) {
                    Platform.exit();
                }
            });

            this.getChildren().add(closeBtn);
        }
    }

    @Override
    public void start(Stage primaryStage) {
        //remove window decoration
        primaryStage.initStyle(StageStyle.UNDECORATED);

        BorderPane borderPane = new BorderPane();
        borderPane.setStyle("-fx-background-color: green;");

        ToolBar toolBar = new ToolBar();

        int height = 25;
        toolBar.setPrefHeight(height);
        toolBar.setMinHeight(height);
        toolBar.setMaxHeight(height);
        toolBar.getItems().add(new WindowButtons());

        borderPane.setTop(toolBar);

        primaryStage.setScene(new Scene(borderPane, 300, 250));
        primaryStage.show();
    }
}
包javafxdemo;
导入javafx.application.application;
导入javafx.application.Platform;
导入javafx.event.ActionEvent;
导入javafx.event.EventHandler;
导入javafx.scene.scene;
导入javafx.scene.control.Button;
导入javafx.scene.control.ToolBar;
导入javafx.scene.layout.BorderPane;
导入javafx.scene.layout.HBox;
导入javafx.stage.stage;
导入javafx.stage.StageStyle;
公共类JavaDemo扩展了应用程序{
公共静态void main(字符串[]args){
发射(args);
}
类WindowButtons扩展HBox{
公共窗口按钮(){
按钮关闭Btn=新按钮(“X”);

关闭设置动作(新的EventHandler,您可以在其中找到更多有用的示例。

感谢上面的示例。.答案很好。+1!但是如果您希望仍然能够在屏幕上移动窗口,该怎么办?更不用说我在这里找到了答案:注:JavaFX8和Eclipse 4.5不起作用,并且链接已断开,请更新标记问题的不合逻辑性如果你真的设计了自己的窗口,请非常保守,尽量坚持每个本地平台的设计。很容易搞糟它,让它看起来像一个廉价的噱头。