[Java] 90 JavaFX Paneの詳細位置設定

TabヘッダやTabコンテンツの位置設定等に苦労していましたが、ようやく慣れてきました。この手の設定はSwingの方が断然楽です。

コードから設定する場合はPaneのsetStyleメソッド、CSSから設定する場合は各Paneのpaddingを調整します。ネット情報でコードからはCSSの内容をいじれないと書いていることがありますが、そんなことはありません。

特にTabPaneのタブの位置を調整するのに手こずりました。GitHubで配布しているcaspitan.cssやmodena.cssといった代表的なスタイルシートを元に自分なりにアレンジしました。

TabPaneの場合は以下の様に設定してタブをほぼ中央にもってきました。こういうのは私の様なCSS初心者が一から書いているとなかなか思いつかないです。”:top”を付けられずに立ち往生したでしょう。ネット情報では最後の砦のStackOverflow英語版でも類似の質問に対してまともな回答がありませんでした。今回はcaspitan.cssのおかげでなんとかできました。

CSSを使いこなすには書式を知っているか否かが全てでロジカルにアプローチできないのが厄介です。JavaFXが標準ライブラリから外されてしまった理由が何となく分かる様な気がします。

.tab-pane:top > .tab-header-area {
    -fx-background-insets: 0, 0 0 1 0;
    -fx-padding: 2 80 0 80 ;
}