如何使用JavaFX移动和着色导航器的关闭/最小化/最大化按钮

问题描述 投票:-2回答:1

我想知道如何调整程序顶部(导航器)的颜色,现在它看起来像这样:

https://i.imgur.com/NdBUQzt.png

但是我希望它被着色,或者让它成为我软件的一部分,就像spotify一样:

https://46c4ts1tskv22sdav81j9c69-wpengine.netdna-ssl.com/wp-content/uploads/2017/06/ef6b137fb60f5671e2d92a8096442a46.png

^您可以注意到关闭/最小化/最大化按钮是彩色的(黑色)并且不在新行中,而是与软件处于同一级别。

另一个例子是Word,例如:

https://filestore.community.support.microsoft.com/api/images/561dc05e-f679-40d0-8a0d-983f3d90333b

我听说过一些解决方案包括制作我自己的按钮,并使其功能与本机的Windows 10(例如)一样,但在我上面列出的两种情况(Spotify和Word)中,这些按钮是操作系统的原生按钮,我的意思是我可以告诉它是一个真正的Windows 10关闭/最小化/最大化按钮。

它可以在javaFX中以任何方式完成吗? (不确定是否值得一提,但我也使用Visual编辑器 - 场景构建器)

提前致谢。

java javafx scenebuilder
1个回答
3
投票

解决问题的一种可能方法是删除主阶段的默认布局并自行开始修改。要做到这一点,你必须使用一个未修饰的工具栏。你在舞台控制器那样做:

    primaryStage.initStyle(StageStyle.UNDECORATED);

之后,您可以创建自定义工具栏。这是一个非常基本的例子:

    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.setStyle("-fx-background-color: blue;");



    borderPane.setTop(toolBar);

    primaryStage.setScene(new Scene(borderPane, 300, 250));
    primaryStage.show();

无论如何,您可以使用设计并尝试不同的方式,以满足您的喜好。至于原生工具栏按钮的一部分,一个想法就是模仿它们。看看以下链接如何设计它们。

http://fxexperience.com/2011/12/styling-fx-buttons-with-css/

© www.soinside.com 2019 - 2024. All rights reserved.