2016-04-10 13 views
-1
JLabel label = new JLabel("Underlined Label"); 
Font font = label.getFont(); 
Map attributes = font.getAttributes(); 
attributes.put(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON); 
label.setFont(font.deriveFont(attributes)); 

私はこのコードを今日少なくとも100回以上見てきました。私は100回以上試してみましたが、毎回動作しません。私はJLabelのテキストに下線を引いているしようとすると、これは私が見つけたコードの唯一のブロックであり、他のすべてのstackoverflowで私を除いて、これを理解するようだ?マップはクラスですか?誰かがどのようにこの作品を説明できますか?

+1

技術的には、マップはインターフェイスですが、クラスとして考えることができます。私は属性が地図を実装するHashMapだと思います。 – billjamesdev

+0

@billjamesdevので、マップ属性= font.getAttributes();インターフェイスの初期化ですか? –

+0

さて、属性には、キーと値のペアの「リスト」内のフォントのすべての属性が含まれています。リストはこの["value1"、 "value2"]のようなものですが、マップは次のようになります["attrName": "attrValue"、 "attrName2": "attr2Value"]。マップ値はインデックス(リストと同じように)ではなく、キー(上記の「attrName」)で取得されます – billjamesdev

答えて

0

あなたの質問やコメントによれば、topCaptionという名前のJLabelを作成し、viewWindowというJPanelに追加するコードがあり、そのラベルを結果として見ることができます。

だから、どこかにあなたが持っている:その直後

JLabel topCaption = new JLabel(you may have some stuff here); 

、この操作を行います。あなたはこのを続行する前に

Font font = topCaption.getFont(); 
Map attributes = font.getAttributes(); 
attributes.put(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON); 
topCaption.setFont(font.deriveFont(attributes)); 

また、私はの知識として、あなたはより多くの読み取りを行う必要が提案するかもしれませんがマップは、ほとんどのUIプログラミングにとってかなり基本的なものであり、あなたはベルトの下でいくつかの基本がなくてもこのような問題を抱え続けるでしょう。

+0

あなたのお手伝いが大変ありがとうございます。私は実際にそれが動作していない理由と、実際に私がそれをオンラインで検索する必要がある恥ずかしそうな考え方を理解しました。ああ、ありがとうございました。 –

関連する問題