Swing:TextArea

各チームの情報(テキストファイル)が用意してあるので、その内容を読み込んで表示します。まず、表示したいテキストが「固定である」という仮定に基づいて、話を進めます。


【例題1】TextArea のメンバー特性(フィールド/メソッド)をすべて表示したい。

TextArea のメンバー特性を表わす情報が、テキスト領域に表示されます。1行に収まらないテキストは折り返されます。ここでは、後述するメソッド setLineWrap が、メンバー特性に含まれるのが分かります。これを実現したのが、次のコードです。

def ex_JTextArea():
text = `dir(JTextArea)`
view = JTextArea(
text=text,
lineWrap=True,
wrapStyleWord=True,
)
frame = JFrame(
defaultCloseOperation=JFrame.EXIT_ON_CLOSE,
title="JTextArea",
size=(200, 100),
)
frame.add(JScrollPane(view))
frame.show()

テキスト文字列を設定する

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

    public JTextArea(String text)
public void setText(String t)

コンストラクター JTextArea(String) が便利です。また、インスタンスを生成した後で、メソッド setText(String) を利用しても同じ効果が得られます。
他の記事「JavaBeansの美味しい煎り方」で紹介したように、JavaBeans に準拠した Swing には、Jython の便利な機能を適用できます。それは、コンストラクターにキーワード引数を指定することです。次のように、

    view = JTextArea(
text=text,

キーワード引数 text= の後に表示したいテキスト text を設定します。これは、次のコードと同じ効果が得られます。

    view = JTextArea()
view.setText(text)

さらに、Jython 流を貫くなら、次のようになります。

    view = JTextArea()
view.text = text

《Tips》Jython では、JavaBeans に準拠したリソースに対して、インスタンスを生成するときにキーワード引数で値を初期設定したり、メソッド呼び出しでは冗長な set/get を省略できます。そのため、Java と比べて、簡潔で見通しの良いコードを記述できます。


Previous|2/5|Next