Java.use(better); Episode#22 ファインダーを作成する

前の記事記事一覧次の記事
Java.use(better, Scala);


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