Создание кнопок в Java с использованием настраиваемого шрифта приводит к тому, что кнопки имеют странную форму

Я пытался создать кнопки javafx с настраиваемым шрифтом. Шрифт находится в каталоге ресурсов моего проекта и применяется к кнопкам через таблицу стилей css. Проблема в том, что кнопки становятся действительно высокими. Как только я удаляю строку css, меняющую шрифт, кнопки выглядят как обычно. Сами кнопки находятся внутри HBox, который находится в нижней части BorderPane. Есть у кого-нибудь идеи, как это исправить? Изменение размера вручную не помогает.

@font-face {
    font-family: 'MODERNA';
    src: url('/fonts/MODERNA_.ttf');
}

.label {
    -fx-font-family: 'MODERNA';
    -fx-font-size: 20;
}

.button .text {
    -fx-font-family: 'MODERNA';
}

.button {
    -fx-background-color: #F5E050;
    -fx-pref-height: 30px;
    -fx-pref-width: 100px;
}

странные непропорциональные кнопки с нестандартным шрифтомнормально выглядящие кнопки со стандартным шрифтом

Меняет ли установка maxHeight на Button?

Zephyr 13.11.2018 22:33

@Zephyr maxHeight ничего не меняет, нет.

Snuffduff 14.11.2018 13:17

Я переключился, чтобы попробовать поработать с создателем сцен, но проблема не устранена.

Snuffduff 14.11.2018 13:18

Вам нужно будет предоставить минимальный воспроизводимый пример, чтобы мы действительно поняли, что происходит.

Zephyr 14.11.2018 14:24
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
4
83
1

Ответы 1

Я нашел решение и хотел сообщить всем, у кого такая же проблема. @Zephyr был не за горами, однако именно maxHeight, а minHeight создал проблему. В SceneBuilder необходимо установить значение USE_PREF_SIZE вместо USE_COMPUTED_SIZE, которое, по-видимому, является значением по умолчанию. После этого просто измените prefSize в пользовательском интерфейсе SceneBuilder, и все отлично работает. Проблема, должно быть, заключалась в том, что система не могла самостоятельно рассчитать правильную высоту по какой-либо причине, вероятно, что-то связанное со шрифтом, потому что этого не происходило с другими шрифтами.

Другие вопросы по теме