アイコン化されたJavaFXメニュー項目ラベルを作成しようとしました。メニュー項目ラベルとアクセラレータラベルの両方にアイコンが複製されています。 ここに私の問題を説明するイメージがあります。ここでJavaFxメニュー項目アクセラレータJavafx css
のJavaFX CSSのコードです:
.menu-item > .label {
}
#miRestore .label{
-fx-graphic: url("/img/Upload_16x16.png");
}
#miBackup .label {
-fx-graphic: url("/img/Flash%20Disk_16x16.png");
}
#miClose .label {
-fx-graphic: url("/img/Delete_16x16.png");
}
#miSettings .label {
-fx-graphic: url("/img/Settings_16x16.png");
}
#miRegistre . label{
-fx-graphic: url("/img/Help_16x16.png");
}
明らかに、MenuItemはアクセラレータテキストを保持するために2番目のLabelを内部的に使用しています。 '.label:first-child'を使うセレクタを変更すると動作するかもしれません。 – VGR
@VGR、残念ながら、これは私にとってはまったく機能しません。メニューアイコンも消えます。 –
信頼できるアプローチは、カスタム[スタイルクラス](http://docs.oracle.com/javase/8/javafx/api/javafx/scene/Node.html#getStyleClass--)を持つNodeにMenuItemグラフィックを設定することです。 )、 '.label'の代わりに(あるいはそれに加えて)あなたのCSSでそれを使用してください。 – VGR