支援ツール:JList の状態を確認する

インスタンスのメンバー特性(フィールド/メソッド)を確認できるツールがあると便利です。後述するコードを実行すると、次のようなインスペクターが現われます。


リスト項目にあるのは、JList インスタンスのメンバー特性です。1)左の項目を選択すると、2)関連する情報が右のテキスト領域に表示されます。つまり、JList インスタンスの状態と、どのメソッド呼び出しに応答できるかを「JList 自身を使って」確認しているのです。

フィールド:listData

項目 listData を選択すると、次のエラーメッセージが表示されます。

AttributeError: write-only attr: listData

フィールド listData は private 属性なので(通常は)そのインスタンスだけが値を設定できます。そこで、コンストラクター JList() を使って、生成したばかりのインスタンスに値を初期設定するときに、キーワード引数 listData= を利用すると、次のメソッド setListData() を呼び出す手間が省けます。

インスタンスメソッド:setListData

項目 setListData を選択すると、次の情報が表示されます。

<method javax.swing.JList.setListData of javax.swing.JList instance 1>

これを見ると、メソッド setListData は、javax.swing.JList インスタンスに対して有効なのが分かります。

イベントハンドラー:valueChanged

項目 valueChanged を選択すると、次の情報が表示されます。

<CompoundCallable with 0 callables>

これを見ると、valueChanged には、リスナーが未登録 0 なのが分かります。コンストラクター JList() を使って、生成したばかりのインスタンスに値を初期設定するとき、キーワード引数 valueChanged= の後にイベントハンドラーを設定しておくと、この値は 0 以外となります。つまり、イベント通知を待っているリスナーと同数になります。すると、イベントハンドラーを登録するのに、addListSelectionListener を呼び出す手間が省けます。Compound... で始まる名前が示すように、プログラマーが知る必要のない情報(addListSelectionListener/ListSelectionListener)などを混成させて隠蔽します。


Previous|4/5|Next