Изменение стиля шрифта при нажатии на JButton Java - PullRequest
7 голосов
/ 30 декабря 2011

Как изменить STYLE из Font при нажатии на JButton?

Я пытаюсь, чтобы 3 кнопки меняли стили на PLAIN или BOLD или ITALIC

Я прочитал font Class API, но я не могу ничего подобного setStyle, мы можем только getStyle

Я считаю, что класс шрифтов в java более сложен, чем должен: S.

Ответы [ 4 ]

14 голосов
/ 30 декабря 2011

Вам нужно будет вызвать setFont(...), а не setStyle.

Например, если вы хотите сохранить тот же шрифт, но изменить стиль JTextField с именем «field», вы можете сделать что-то вроде:

field.setFont(field.getFont().deriveFont(Font.BOLD));

Редактировать
Чтобы установить шрифт как жирный, так и курсивный, вы должны использовать растровые изображения:

field.setFont(field.getFont().deriveFont(Font.BOLD | Font.ITALIC));

Обратите внимание, что здесь используется побитовый оператор ИЛИ, который использует один символ канала: |, а не логический оператор ИЛИ, который использует символ двойной трубы: ||.

Также обратите внимание на дополнительную тонкость и путаницу, что | может использоваться как логический оператор ИЛИ, но вы обычно предпочитаете использовать || для этого, так как последний является оператором "короткого замыкания" в том случае, если левая часть выражения верна, правая часть даже не вычисляется.

4 голосов
/ 30 декабря 2011

вы можете сделать это следующим образом

JButton myButton=new JButton();
myButton.setText("My Button");
myButton.setFont(new Font("Serif", Font.BOLD, 14));
4 голосов
/ 30 декабря 2011

Получите текущий шрифт, используйте deriveFont, чтобы получить новый шрифт, похожий на текущий, но с новым стилем, и примените новый шрифт.

2 голосов
/ 30 декабря 2011

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

...