当前位置: 首页 > 知识库问答 >
问题:

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

荆乐
2023-03-14
<?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>
.modBar
{
    -fx-background-color: white;
}
.modItem
{
    -fx-color: black;
}

这不起作用(“文件”仍然保持白色)。我做错了什么?此外,另一件事是,我似乎不能用CSS应用任何东西。moditem-它的排序-在场景构建器中工作,但一旦预览就消失了(而且“样式表”选择器在SB的所有菜单上都丢失了)。

共有1个答案

汪正雅
2023-03-14

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

.menu .label
{
    -fx-text-fill: black;
}

这将影响所有菜单控件。

顺便说一句,场景构建器有一个特殊的构建可能会引起兴趣--b42,它有一个额外的CSS菜单,公开了控件/元素的内部样式,所以定制变成了一个简单的操作(不需要事先手动提取应用的样式)。

 类似资料:
  • 我在我的网站上使用了wordpress twenty-eleven主题。现在我想为我的网站创建一个下拉菜单。默认情况下,wordpress具有下拉菜单功能。现在,当我在主菜单上悬停时,我得到了子菜单部分。例如:- 我有一个主菜单像:-首页|关于|联系 当我停留在“关于”菜单上时,它会显示“关于”菜单的子菜单,如 主页|关于|联系人 当我将鼠标悬停在历史菜单上时,它会显示历史菜单的子菜单,如下图所示

  • 编辑:我使用的不是第三方库,而是支持库中提供的NavigationView。下面是XML布局:

  • 我有一个带有一些TextArea元素的GUI来显示信息。由于GUI将对keyevents做出反应,我在场景元素中添加了一个EventHandler。因为我不想为每个文本区域添加一个EventHandler,所以我禁用了它们以防止它们聚焦,因为这样场景的EventHandler就不再工作了。现在我有一个问题:文本显示为灰色,不再是黑色,尽管我在css文件中更改了它。你知道为什么文本不是黑色的吗?我该

  • 我正在用Bootstrap创建一个网站,我想更改导航栏的文本颜色。我甚至很难瞄准导航栏,但这不是重点。基本上,我只想改变文本的颜色。它允许我更改除文本颜色以外的任何内容,例如背景颜色、字体、边框等,而不是文本颜色。这里有一个指向该页面GitHub的链接。任何帮助都将不胜感激(我的css在css/style.css中,颜色标签在.nav、.navbar、.dropdown菜单类中)。 编辑1我已经更