web-dev-qa-db-ja.com

Javaでラベル(色付きテキスト)の色を設定するにはどうすればよいですか?

ラベルのテキストの色を設定するにはどうすればよいですか?

myLabel.setText("Text Color: Red");
myLabel.???

1つのラベルに2つの異なる色を使用できますか?

以下に例を示します。

"Text Color:"は黒で、"Red"は赤です。

58
Stefanos Kargas

承知しました。前景色を設定するには、label.setForeground(Color.RED)を使用します。

2色の質問の場合:たとえば、ラベルテキストでhtmlを使用できます。

frame.add(new JLabel("<html>Text color: <font color='red'>red</font></html>"));

生産する

enter image description here

別の解決策は、もちろん、それぞれに前景色を持つ2つの別個のJLabelを使用することです。

121
aioobe

前景カテゴリを変更することにより、JLabelの色を設定できます。

JLabel title = new JLabel("I love stackoverflow!", JLabel.CENTER);

title.setForeground(Color.white);

私の知る限り、必要な2色ラベルを作成する最も簡単な方法は、2つのラベルを作成し、適切な順序で並べて配置することです。

54
Raven Dreamer
JLabel label = new JLabel ("Text Color: Red");
label.setForeground (Color.red);

これは動作するはずです

19
Roman
object.setForeground(Color.green);

*あなたが望む任意の色*先に宣言されているオブジェクト

ラベルにHTMLを使用する欠点の1つは、ローカライズ可能なプログラム(複数の言語で動作するはずです)を作成する必要がある場合です。翻訳可能なテキストだけを変更する必要があります。または、HTMLコード全体を翻訳に含める必要がありますが、これは非常に厄介です。

gui_en.properties:

title.text=<html>Text color: <font color='red'>red</font></html>

gui_fr.properties:

title.text=<html>Couleur du texte: <font color='red'>rouge</font></html>

gui_ru.properties:

title.text=<html>Цвет текста: <font color='red'>красная</font></html>
3
Honza Zidek

上記の内容@ aioobeに追加したいだけです...

このアプローチでは、HTMLを使用してテキストを色分けします。これは、ラベルテキストの色分けに最も頻繁に使用される方法の1つですが、、それを行うための最も効率的な方法ではありません....各ラベルがHTMLの解析、レンダリングなどにつながります。表示する大きなUIフォームがある場合は、ミリ秒ごとにカウントして、優れたユーザーエクスペリエンスを提供します。

以下を試してみてください。..

Jide OSSathttps://jide-oss.dev.Java .net / )は、大量のSwingコンポーネントをすぐに使用できるプロフェッショナルなオープンソースライブラリです。 StyledLabelという名前のJLabelの大幅に改善されたバージョンがあります。そのコンポーネントはあなたの問題を完全に解決します...彼らのオープンソースライセンスがあなたの製品に適用されるかどうかを見てください。

このコンポーネントは非常に使いやすいです。 Swingコンポーネントのデモをご覧になりたい場合は、www.jidesoft.comhttp:/ /www.jidesoft.com/products/1.4/jide_demo.jnlp )。それらの製品はすべてデモ版です...そして、最良の部分は、速度に関してStyledLabelがJLabel(HTMLおよびなし)と比較されることです! :-)

Perfテストのスクリーンショットは( http://img267.imageshack.us/img267/9113/styledlabelperformance.png )で見ることができます。

2
arcamax