【问题标题】:How to move and color the navigator's close/minimize/maximize buttons using JavaFX如何使用 JavaFX 移动导航器的关闭/最小化/最大化按钮并为其着色
【发布时间】:2019-04-25 21:11:07
【问题描述】:

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

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

提前致谢。

【问题讨论】:

  • 添加到@Shpend 答案,考虑查看JMetro thrid party css for windows look & feel。
  • @SaiDandem 这个功能非常好,但是没有本地操作系统可以做到这一点吗?

标签: java javafx scenebuilder


【解决方案1】:

解决您的问题的一种可能方法是删除主要阶段的默认布局并开始自己修改它。为此,您必须使用未装饰的工具栏。您可以在舞台控制器上执行此操作:

    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/

【讨论】:

  • 有没有办法制作原生的?我的意思是,它看起来不像 Spotify、Word 甚至 Google Chrome 都修改了关闭/最小化/最大化按钮,所以它看起来像原生的,但我看起来像真的。
猜你喜欢
  • 2012-01-10
  • 1970-01-01
  • 2016-03-04
  • 2016-10-04
  • 1970-01-01
  • 2015-10-16
  • 2011-03-13
  • 1970-01-01
相关资源
最近更新 更多