2011-08-02 3 views
12

JLabelのフォントをBOLDITALICの両方に変更しようとしていますが、静的フィールドが定義されていないようです。太字の斜体フォントを使用できるように、2つのスタイルをどのように組み合わせることができますか?Javaで2つのフォントスタイルを組み合わせることはできますか?

このコードは、静的フィールドBOLDを使用することにより、単に大胆でそれを行うだろうが、太字やイタリック体の両方のために定義されたフィールドがありません:

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

答えて

22

はい、styleパラメータはビットマスクとして見られている。

new Font("Verdana", Font.BOLD + Font.ITALIC, 12) 
+4

+1「ビットマスク」という言葉が私を変えてくれる...:D – mre

+4

ビットごとの "または" |加算( "+")よりも好ましい。 –

+0

@Hovercraft:合意。 @Paŭloがコメントしているように、 '+'、 '|'と '^'はこの文脈では同等です。 '+'はやや読みやすいかもしれませんが、それはパスカルの話かもしれません。あまりにも 'EnumSet'は後で追加されました。 – trashgod

8

From the API documentation of this constructor

パラメータ:

  • ...
  • style - Fontのスタイル定数。 style引数は、PLAIN、またはBOLDおよび/またはITALICのビット単位の和集合(たとえば、ITALICまたはBOLD|ITALIC)の整数ビットマスクです。スタイル引数が予想される整数ビットマスクの1つに適合しない場合、スタイルはPLAINに設定されます。このよう
  • ...

、ここ

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

を使用しています。

+2

+1 GMTA;私は "|" "+"よりも優先されます。 – trashgod

+1

@trashgod:ここでのような分離ビットの場合には、実際には '+'、 '|'と '^'に違いはありません。 –

+0

しかし、それはあなたが上記の私のコメントに記されているように違いを生むような状況に簡単にぶつかるので、入り込むのは良い習慣ではありません。 –

関連する問題