2011-12-30 61 views
5

,当点击一个JButton点击时,如何改变FontSTYLE更改字体样式上一个JButton的Java

我想有3个按钮,每个按钮改变样式PLAINBOLDITALIC

我读过font Class API但我有没有像setStyle我们只getStyle

可以找到字体类在java中比它应该更复杂:S。

+1

另请参阅http://stackoverflow.com/questions/8675038/increasing-decreasing-font-size-inside-textarea-using-jbutton对于一个非常类似的问题 – Robin 2011-12-30 11:51:10

回答

13

您需要调用setFont(...)不使用setStyle。

例如,如果你想保持相同的字体,但更改JTextField的所谓风格“场”,你可以这样做:

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

编辑
要设置字体既粗体和斜体,你还是位图:

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

请注意,这里使用了按位或者使用一个管道符号操作:|而THA n使用双管符号的逻辑OR运算符:||

另外请注意,对于|可以用作逻辑OR运算符,但由于后者是一个“短路”运算符,您通常更愿意使用||,因为如果左手表达的一面是真实的,右边甚至没有评估。

+0

真棒!所以每次我们想要编辑任何参数时,我们必须'setFont'。我之前尝试过使用'deriveFont',但我不知道如何使用它。现在它完全清楚:)谢谢@Hovercraft! – Sobiaholic 2011-12-30 13:31:00

+0

我有一个问题,怎么样,如果我想要的文字是'ITALIC'和'BOLD'? – Sobiaholic 2011-12-30 13:40:01

+0

@iMohammad:请参阅上面的修改。 – 2011-12-30 14:02:34

4

获取当前字体,使用deriveFont得到一个新的字体相似,当前但有新的风格,并应用新的字体。

+0

谢谢:)我已经发布前仔细阅读,但目前还不清楚。感谢@Hovercraft他的例子帮了我很多! – Sobiaholic 2011-12-30 13:35:15

3

你可以做如下

JButton myButton=new JButton(); 
myButton.setText("My Button"); 
myButton.setFont(new Font("Serif", Font.BOLD, 14));