2009-07-27 7 views
2

私のスイングアプリケーションでは、表示したいテキストの種類が異なります。私は、「選択項目を選択し、」ラベルフォント「見出し」(私が定義する何かを)使用したいスウィングでのラベルフォントのカスタマイズ

 
    Select choice: 
    a 
    b 

、および選択肢:例えば、私は、のようなものを選択肢のリストの前に見出しテキストを表示したいです「選択」フォントを使用する。このパターンはアプリケーション内の複数の場所で発生するので、フォントが設定されている場所を一元管理したいのが理想的です。

私の現在のアプローチは異なるラベルタイプを作成するためのファクトリを使用することです:

LabelFactory.createHeadingLabel("LabelText"); 
LabelFactory.createChoiceLabel("ChoiceText"); 

工場は、フォントを指定するプロパティファイルを読み込み、それらは工場で作成されたとき、私はラベルをカスタマイズします。私は、このようなファクトリを使用していることは分かっていますが、このようなことを行うための標準的なSwingの規約があるかどうかはわかりません。どんな入力も感謝します。

答えて

2

もう一つのアプローチは、JLabelを拡張することです。

設定ファイルからフォントを読み込むことはできますが、この方法では、通常のJLabelともっと似た方法でラベルを作成できます。

private JLabel header = new HeaderJLabel("Header text"); 

カスタムラベルのコンストラクタをオーバーライドするだけで済みます。

また、構成ファイルを一度読み込むだけで済みます。それをメモリにロードし、その後メモリからアクセスします。

+0

うんから余分なスペースを削除する必要があり、それは私が考えられていた他の方法でした。私は一般的にスイング開発をあまりしないので、スイングの標準的な方法があるかどうかは分かりませんでした。 –

+0

私は一般的ではないので、あなたがやっていることのための標準があるとは思わない。 – jjnguy

+0

リッチUIに複数のスタイルのテキストを表示するのは一般的ではありませんか? –

0

あなたは多くのSwingコンポーネントの内部に限定されたHTMLを使用することができますので、あなたのテキストの異なるスタイルを与えるためにHTMLを使用することができます。

たとえば、headingLabel.setText("< html><b>This text will be bold</b>< /html>"); 太字のラベルが付けられます。

注:< HTML>と</HTML>