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

时间:2019-04-25 21:11:07

标签: java javafx scenebuilder

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

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上以任何方式完成吗? (不确定是否值得一提,但我还使用了可视化编辑器-场景生成器)

谢谢。

1 个答案:

答案 0 :(得分: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/