Контекстное меню для текстового поля показывает пункты меню жирным шрифтом

Если я щелкну правой кнопкой мыши на текстовом поле в приложении JavaFX, пункты меню будут выделены жирным шрифтом. Это происходит в некоторых текстовых полях. Например, у нас есть один экран входа в систему, где пункт меню отображается правильно, а на другом экране - жирным шрифтом.

Примечание: я не написал никакого кода для щелчка правой кнопкой мыши по текстовому полю, так как я думаю, что это внутренняя функция, и он отображает обычные вырезать, копировать, вставлять, удалять и выбирать все.

Как избежать отображения контекстного меню жирным шрифтом?

Это происходит только тогда, когда я устанавливаю CSS метки перед текстовым полем как жирный.

.label { -fx-font-weight:bold; }

И последнее, что эти элементы управления генерируются динамически. Это всплывающее окно, содержащее метку, текстовое поле и кнопку.

1 ответ

Решение

Установив

.label { -fx-font-weight:bold; }

и загружая этот CSS в сцену, вы переопределяете глобальный CSS-селектор по умолчанию для меток, определенных в caspian.css, и, таким образом, меняете все свойства font-weight на полужирный шрифт всех меток в сцене, а также метку контекстного меню.
Вы должны определить свой собственный селектор CSS и применять его только для желаемых меток:

#my-bold-label {
    -fx-font-weight:bold;
}

в коде Java:

Label lbl = new Label("My bold text");
lbl.setId("my-bold-label");
Другие вопросы по тегам