Java.use(better); Episode#22 ファインダーを作成する
┃Iterator:オブジェクトごとに最適な制御構造を規定する
オブジェクト指向プログラミングの醍醐味のひとつは、オブジェクトごとに最適な制御構造を再定義できることです。すると、コードが簡潔で見通しも良くなります。今回は、構造化プログラミングの「条件反復」に代わる、メソッド群を紹介します。
☞ 余録:trait Iterator
□ イベントを処理する
前回に続き、イベント処理を進化させます。今回は、選択した項目を頂点とするツリー情報を表示します。
20: class View(frame: Frame) extends BorderPanel { 43: def update(source: TreeView) { 44: import javax.swing.tree.TreeNode 45: val node = source.selectedComponent.asInstanceOf[TreeNode] 46: frame.title = node.toString 47: textArea.text = "" 48: textArea.append("%s\n" format new Node(node)) 49: textArea.caret.position = 0 50: } 51: }
[43-50]ツリー項目を選択したときに発生するイベントに呼応して、タイトルを設定するとともに、テキスト領域に選択した項目を追記してからキャレットを戻すと、表示した情報を先頭から閲覧できます。ここでは、新たに追加したメソッド selectedComponent(後述)を利用します。
16: class TreeView extends Component { 27: def selectedComponent = peer.getLastSelectedPathComponent 28: }
[27]前述した lastPath との違いは、選択した項目を示す文字列ではなく、それに関連するオブジェクトが得られることです。
》作業中です《
↑ TOP
Created: 2010/05/23|Last updated: 2013/06/12 20:36:38