Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用FXML/CSS更改JavaFX中菜单控件的文本颜色_Css_Menu_Javafx 2_Fxml - Fatal编程技术网

使用FXML/CSS更改JavaFX中菜单控件的文本颜色

使用FXML/CSS更改JavaFX中菜单控件的文本颜色,css,menu,javafx-2,fxml,Css,Menu,Javafx 2,Fxml,我想更改JavaFX中菜单控件的文本颜色。目前,整个菜单栏的背景色设置为白色,显示Menu-s的默认文本颜色也为白色,因此我看不到实际控件,因此我想将菜单(“文件”)的文本颜色设置为黑色。我该怎么做 以下是FXML的部分: <?import java.lang.*?> <?import java.net.*?> <?import java.util.*?> <?import javafx.scene.control.*?> <?import

我想更改JavaFX中菜单控件的文本颜色。目前,整个菜单栏的背景色设置为白色,显示Menu-s的默认文本颜色也为白色,因此我看不到实际控件,因此我想将菜单(“文件”)的文本颜色设置为黑色。我该怎么做

以下是FXML的部分:

<?import java.lang.*?>
<?import java.net.*?>
<?import java.util.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.paint.*?>

<AnchorPane id="AnchorPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml">
  <children>
    <MenuBar id="modBar" layoutX="176.0" layoutY="122.0" styleClass="modBar">
      <menus>
        <Menu id="modItem" mnemonicParsing="false" styleClass="modItem" text="File" />
      </menus>
      <stylesheets>
        <URL value="test.css" />
      </stylesheets>
    </MenuBar>
  </children>
</AnchorPane>

这不起作用(“文件”仍然保持白色)。我做错了什么?另外,另一件事是,我似乎无法将任何CSS应用于。modItem-它在场景生成器中可以正常工作,但在预览后就会消失(SB中的所有菜单上都缺少“样式表”选择器)。

好的,我想我找到了答案。我所做的是从jfxrt.jar(默认css主题JavaFX使用)中提取caspian.css,并检查与Menu-s相关的所有内容:

这将影响所有菜单控件



顺便说一句,可能会对场景生成器的特定构建感兴趣-b42,它有一个额外的CSS菜单,该菜单公开了控件/元素的内部样式,因此定制变成了一个简单的操作(无需事先手动提取应用的样式).

我不确定,但是您设置了id属性-这不意味着您只能通过 #莫德巴 或 #改装

我对JFX2也很陌生(大约一个月),不幸的是,在我作为Java开发人员的所有岁月中,我从来都不需要使用css,所以这只是一个假设

.modBar
{
    -fx-background-color: white;
}
.modItem
{
    -fx-color: black;
}
.menu .label
{
    -fx-text-fill: black;
}