Как установить размер пользовательского шрифта и другие атрибуты (полужирный, курсив и т. д.) В Java SWING

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

public static final Font TITLEFONT = new Font("Calibri", Font.BOLD, 40);

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

try
{
    InputStream is = OptionsValues.class.getResourceAsStream("fonts//KOMIKAX_.ttf");
    TITLEFONT = Font.createFont(Font.TRUETYPE_FONT, is);
}
catch (Exception ex)
{
    ex.printStackTrace();
    System.err.println("Font not loaded.  Using Calibri font.");
    TITLEFONT = new Font("Calibri", Font.BOLD, 40);
}

Я уверен, что он инициализирует его правильно (я не могу сказать наверняка, так как он слишком мал для меня), но я хотел бы знать, как я могу вручную установить размер шрифта (и если он полужирный / другие атрибуты), когда загрузка шрифта таким образом.

большое спасибо заранее!

1 ответов


createFont возвращает шрифт, и вы можете вызвать deriveFont(...) на этом, передавая float для размера точки или int и float для стиля шрифта и размера точки. Я не могу сказать, будет ли это работать для вашей конкретной ситуации, но стоит попробовать.

например,

InputStream is = OptionsValues.class.getResourceAsStream("fonts//KOMIKAX_.ttf");
TITLEFONT = Font.createFont(Font.TRUETYPE_FONT, is).deriveFont(Font.BOLD, 40f);