gpt4 book ai didi

JavaFX primaryStage 删除 windows 边框?

转载 作者:IT老高 更新时间:2023-10-28 20:45:34 27 4
gpt4 key购买 nike

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

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

最佳答案

这个例子可能是一个很好的起点。所有 window 装饰都被移除。扩展 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 Samples您可以在其中找到更多有用的示例。

关于JavaFX primaryStage 删除 windows 边框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9861178/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com