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

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

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

Теперь я должен сделать это немного по-другому, так как я использую некоторыепользовательские шрифты из файла .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 Ответ

10 голосов
/ 23 августа 2011

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

например,

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