6

JavaFXでMenuコントロールのテキストの色を変更したい。現在、メニューバー全体の背景色が白に設定されており、メニューを表示するためのデフォルトのテキストの色も白であるため、実際のコントロールが見えないため、メニューのテキストの色を設定したい(「ファイル") 黒に。それ、どうやったら出来るの?

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部分は次のとおりです。

.modBar
{
    -fx-background-color: white;
}
.modItem
{
    -fx-color: black;
}

これは機能しません (「ファイル」はまだ白いままです)。私は何を間違っていますか?また、もう 1 つのことは、CSS を使用して.modItemに何も適用できないように見えることです。これはScene Builderで機能しますが、プレビューすると消えます ( SBのすべてのメニューで「スタイルシート」セレクターも欠落しています)。

4

2 に答える 2

17

OK、私は答えを見つけたと思います。私がしたことは、jfxrt.jar ( JavaFXが使用するデフォルトのCSSテーマ) からcaspian.cssを抽出し、 Menu -sに関連するすべてを検査することでした。

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

これは、すべての メニューコントロールに影響します。


ところで、興味を引く可能性のあるScene Builderの特定のビルドがありました- b42、これには、コントロール/要素の内部スタイルを公開する追加のCSSメニューがあったため、カスタマイズは簡単な操作になります (事前に手動で抽出する必要はありません)。適用されたスタイルの)。

于 2012-06-16T14:53:19.130 に答える
0

よくわかりませんが、 id 属性を設定しました - #modBar または #modItem 経由でのみアクセスできるという意味ではありませんか???

また、私は JFX2 を初めて使用し (約 1 か月)、残念なことに、Java 開発者としての長年にわたって css をいじる必要がなかったので、これは単なる仮定にすぎません。

于 2012-06-18T08:24:04.040 に答える