JavaFX primaryStage删除Windows边框?

我正在制作JavaFX destop应用程序。 我想删除默认的Windows边框,我也想自定义最小化,最大化和关闭的3个标准图标。

这种外观或定制的最初动机是新的卡巴斯基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() { @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(); } } 

您还可以下载JavaFX示例 ,您可以在其中找到更多有用的示例。