我正在使用JavaFx,似乎在使菜单栏看起来完全像我想要使用CSS的方式时遇到问题。
主菜单栏似乎还可以。当我将鼠标悬停或选择时,背景变暗,字体变成蓝色(示例中为“编辑”)。与下面的菜单项相同(在示例中为“ Delete”),但其他未悬停,未选中的菜单项似乎也显示蓝色文本,而不是白色。
我尝试查看https://docs.oracle.com/javase/8/javafx/api/javafx/scene/doc-files/cssref.html和其他StackOverflow文章,只是一堆试验和错误,但似乎无济于事。有提示吗?
源代码位于https://github.com/pnogas/TornadoTest,但下面将提供一些代码段,以防万一我从github上将其删除以供将来的读者阅读。
从场景生成器生成的FXML,然后从intelliJ IDE自动格式化
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<VBox prefHeight="400.0" prefWidth="640.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1"
fx:controller="com.paulnogas.log.analyzer.MainView">
<MenuBar stylesheets="@test.css" VBox.vgrow="NEVER">
<Menu mnemonicParsing="false" text="Edit">
<MenuItem mnemonicParsing="false" text="Undo"/>
<MenuItem mnemonicParsing="false" text="Redo"/>
<SeparatorMenuItem mnemonicParsing="false"/>
<MenuItem mnemonicParsing="false" text="Cut"/>
<MenuItem mnemonicParsing="false" text="Copy"/>
<MenuItem mnemonicParsing="false" text="Paste"/>
<MenuItem mnemonicParsing="false" text="Delete"/>
<SeparatorMenuItem mnemonicParsing="false"/>
<MenuItem mnemonicParsing="false" text="Select All"/>
<MenuItem mnemonicParsing="false" text="unselect All"/>
</Menu>
这是test.css的相关部分
.menu-bar,.menu,.menu-item {
-fx-background-color: #222222;
}
.menu-bar .label,.menu .label,.menu-item .label {
-fx-text-fill: white;
}
.menu:hover,.menu:showing,.menu-item:hover {
-fx-background-color: #111111;
}
.menu:hover .label,.menu:showing .label,.menu-item:hover .label {
-fx-text-fill: #80CBC4;
}
(我知道TornadoFX比普通的* .css文件更喜欢Kotlin中的类型安全CSS,但我想我现在想在* .css中使用它。我想偶尔使用Scene Builder。我也喜欢