Swing:JLabel

各チームの情報(画像ファイル)が用意してあるので、その内容を読み込んで表示します。表示したいテキスト/画像が「固定である(選択/編集する必要がない)」という仮定に基づいて、話を進めます。
【例題1】JLabel に画像ファイルの内容を表示したい。


画像ファイルの内容を読み込んで、ラベルのアイコンとして表示するとともに、ツールチップを表示します。これを実現したのが、次のコードです。

def ex_JLabel():
e = "icons/sunflower.jpg"
view = JLabel(
icon=ImageIcon(e),
toolTipText=e,
)
frame = JFrame(
defaultCloseOperation=JFrame.EXIT_ON_CLOSE,
title=view.__class__.__name__,
size=(240, 150),
)
frame.add(JScrollPane(view))
frame.show()

リファクタリング

リファクタリングを「いつ実施すべきか」という問題に、唯一の正解はありません。ここでは、要求仕様の変更が軽微であり、開発スケジュールにも「余裕がある」という状況を想定して、この機会にリファクタリングを実施します。


支援ツール(インスペクター)の機能拡張に備えて、既存のリソースについて再考します。分割統治法の原則に従うなら、大きく複雑なクラスは、プログラマーが管理できる許容範囲を超えるので、むしろ、小さく簡単なクラスによって合成するのが得策です。そこで、大きなクラス InspectorPanel の中から、小さなクラス SelectionPanel を抽出します。


Previous|2/5|Next

アイコン画像を設定する

JLabel は、テキスト/画像を限られた領域に提示するのに、便利な機能を提供します。表示したい画像が固定なら、次のように、

    public JLabel(Icon image)
public void setIcon(Icon icon)

コンストラクター JLabel(Icon) が便利です。また、インスタンスを生成した後で、メソッド setIcon(Icon) を利用しても同じ効果が得られます。先の連載「JavaBeansの美味しい煎り方」で紹介した、Jython の支援機能を活用すると、キーワード引数 icon= を使って簡潔に表現できます。

ツールチップを設定する

    public void setToolTipText(String text)

メソッド setToolTipText(String) は、ツールチップを指定します。引数 text に指定した文字列が表示されます。ここでも、キーワード引数 toolTipText= を使って簡潔に表現できます。