rlwrapを使ったjrunscriptやijのコマンドラインが不便なので、こういうときに役に立つらしい、2.5年前にメモしたrlwrapをインストールしてみた。おお、jrunscriptとijで履歴を辿れるようになり、ほかにもreadline相当のカーソル移動ができるようになった。5のYumリポジトリにはrlwrapが無いみたいなのでソースからビルドした。Ubuntuならパッケージ化されているみたい。久しぶりにJavaFXをいじる。前回から1ヶ月経ってしまった。リスト、コンボボックス、テーブルを読んだ。テーブルが気になるので試してみた。できあがり名前と値を表示するだけ。表はデフォルトで縞々になるみたい。行や列が無い部分にもセルが補われて表示されている。行に表示するクラスSwingのJTableとは違い行ベースの表を簡単に作れるみたい。次のようなRowクラスを作った。}}nameは変更不可で、valueは変更可能にしている。}}表はTableView、列はTableColumnクラスで作れる。これらはFXMLの方で関連付ける。Rowクラスとの関連付けは型パラメータで行っている。initialize()にて、Rowのメソッドと列を関連付けている。表示用にはcellValueFactory、編集用にはcellFactoryを設定するという理解でよい?cellValueFactoryにはPropertyValueFactoryクラス、cellFactoryにはTextFieldTableCellが生成するクラス使える。表に表示するRowオブジェクトをsetRowList()で設定するようにした。スマートに設定したいけれど。handleValueCommited()は、値列の編集が完了したときに呼ばれる(ようにFXMLを書く)。編集結果を使ってRow#setValue()を呼び出している。</children></AnchorPane>表の外側にScrollPaneを置いてみた。TableViewの中にTableColumnを置いている。列のタイトルを設定している。値列だけ編集可能にしている。}}init()をオーバーライドし、そこでRowオブジェクトを生成してみた。TableViewに登録するにはObservableListというListを使う必要があって、FXCollectionsクラスを使うと簡単に生成できる。コントローラにRowオブジェクトを渡すため、FXMLLoaderインスタンスを明示的に生成している。FXMLLoader#getController()を使うとコントローラオブジェクトを取得できる。ジェネリックメソッドになっていてキャスト不要。3.0.2-p107。