Можем ли мы объединить 2 стиля шрифта вместе в Java? - PullRequest
12 голосов
/ 02 августа 2011

Я пытаюсь изменить шрифт JLabel, чтобы он был BOLD и ITALIC, но, похоже, для этого не определено статическое поле. Как мы можем объединить два стиля, чтобы получить жирный курсивный шрифт?

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

Font font = new Font("Verdana", Font.BOLD, 12);
label = new JLabel ("New Image") ;
label.setFont(font);
label.setForeground(Color.Gray.darker());

Ответы [ 2 ]

25 голосов
/ 02 августа 2011

Да, параметр style рассматривается как битовая маска:

new Font("Verdana", Font.BOLD + Font.ITALIC, 12)
10 голосов
/ 02 августа 2011

Из документации API этого конструктора :

Параметры:

  • ...
  • style -константа стиля для шрифта.Аргументом стиля является целочисленная битовая маска, которая может быть PLAIN или побитовым объединением BOLD и / или ITALIC (например, ITALIC или BOLD|ITALIC).Если аргумент стиля не соответствует одной из ожидаемых целочисленных битовых масок, тогда стиль устанавливается на PLAIN.
  • ...

Таким образом, используйте

new Font("Verdana", Font.BOLD | Font.ITALIC, 12);

здесь.

...