Gridを作成してみた

連続更新は途絶えてしまいましたが、ネタはもうしばらくJavaFXです。

今日は見栄えのいいグリッド(テーブル)を作成してみました。CustomNode、Containerなどを駆使し、モデルをグリッド表示します。

現状のJavaFXのデフォルトではシンプルなリストしか用意されていませんが、アプリケーションを作成していくには必須なコンポーネントです。現状はソート機能やページング機能などはありませんが、拡張していくことでより便利に使いやすいライブラリになればと考えています。
ソースコードこちらから、サンプルはこちらから確認ください。

構造

Gridの構造としてはHTMLのTableと同じような構造にしました。つまり、GridがありGridRowを持ち、GridRowはGridCellを持つという構造です。さらにCellを配置するためのレイアウトクラス(Container)を作成して、配置を行っています。
意外と面倒になってくるのは幅や高さの算出です。色々と試行錯誤した結果、いったん配置してから幅や高さを算出し、それにあわせて再レイアウトすることが最善であるとなりました。