2017-01-04 2 views
0

Я загрузил свой собственный шрифт в затмении, как это:Как изменить размер шрифта на заказ?

Font buttonFontDefault = Font.loadFont(MenuView.class.getClassLoader().getResourceAsStream("res/font/niagra_eng.TTF"), 100); 

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

button.setScaleX(0.50); 
button.setScaleY(0.50); 

Код выше работ, но это разрушает мой макет GridPane, потому что gridpane действует в соответствии с первоначальным размером кнопки. Я предпочел бы иметь решение без использования css, но если это не так, я думаю, у меня нет другого выбора. Но почему не должно быть решения без css?

Я пока не нашел никакой помощи в Интернете. Любая помощь приветствуется.

+0

Единственный способ изменить размер шрифта пользовательского шрифта, чтобы создать еще один экземпляр Класс шрифтов, вызывая 'Font.loadFont (имя строки, двойной размер)'. – ItachiUchiha

+0

Чтобы сохранить макет панели сетки с масштабированными кнопками, оберните кнопку в «Группу» и добавьте «Группа» в область сетки, вместо того, чтобы добавлять кнопку непосредственно в панель сетки. –

ответ

1

Если вы хотите обрабатывать шрифты программно вы можете сделать это, как @ItachiUchiha предложил путем определения размера шрифта при загрузке шрифта:

Font.loadFont(String name, double size) 

Недостаток этого метода - а также обработки программным способом в all - это то, что для каждого размера шрифта вам понадобится экземпляр шрифта, обработанный вашим кодом.

Чистым решением, на мой взгляд, является обработка шрифтов с помощью CSS. Начиная с Java 8, семейства шрифтов могут быть определены с помощью CSS:

@font-face { 
    font-family: 'Roboto'; 
    src: url('Roboto-Medium.ttf'); 
} 

.text { 
    -fx-font-family: "Roboto"; 
    -fx-font-size: 18px; 
} 

Для подробного примера, проверить это post