Как переместить и раскрасить кнопки навигатора закрыть / свернуть / развернуть с помощью JavaFX - PullRequest
0 голосов
/ 26 апреля 2019

Я хотел бы знать, как я могу настроить цвет моего верха (навигатора) моей программы, сейчас это выглядит так:

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

Я слышал о некоторых решениях, включающих создание собственных кнопок и их функциональность, чтобы они работали так же, как окна 10 в нативе (например,) один, но в тех двух случаях, которые я перечислил выше (Spotify и Word), кнопки являются родными для ОС, я имею в виду, что я могу сказать, что это реальные кнопки Windows 10 закрыть / свернуть / развернуть.

Можетбыть сделано каким-либо образом на javaFX?(не уверен, стоит ли упоминать, но я также использую Визуальный редактор - Scene builder)

Заранее спасибо.

1 Ответ

3 голосов
/ 26 апреля 2019

Возможным подходом к вашей проблеме будет удаление макета по умолчанию основного этапа и начало его изменения самостоятельно.Чтобы сделать это, вы должны использовать недекорированную панель инструментов.Вы делаете это на контроллере сцены:

    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/

...