JavaFX 主舞台删除窗口边框?
2022-09-01 13:00:34
						我正在制作JavaFX destop应用程序。我想删除默认的窗口边框,并且我还想自定义3个标准图标 最小化 ,最大化和关闭。
这种外观或自定义的最初动机是新的卡巴斯基2012用户界面。我想设计这样的东西...:)
我正在制作JavaFX destop应用程序。我想删除默认的窗口边框,并且我还想自定义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<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();
    }
}
您还可以下载 JavaFX 示例,在那里可以找到更多有用的示例。