Reversi JavaFX ゲームを構築しています (Pro JavaFX の例を変更しています)。
各セルは、背景とピースを表す楕円を含むスタックペインです
楕円 radiusX は radiusY (つまり円) にバインドされ、radiusY は親の幅と高さの最小値にバインドされます。
DoubleBinding parentWidth = Bindings.selectDouble(parentProperty(), "width");
DoubleBinding parentHeight = Bindings.selectDouble(parentProperty(), "height");
//the radius will be the min of the two
NumberBinding radius = Bindings.min(parentWidth,parentHeight).divide(2);
これを gridPane にたくさん配置すると、すべて同じサイズのボードができあがります。
私が理解している限り、グリッドペインの各セルはそのコンテンツに合わせて自動的にサイズ変更されます。問題は、このボードを含むウィンドウを最大化し、サイズを元に戻すと、次のボードが表示されることです。
一部の行は他の行よりも大きくなっています:(私が考えているのは、最大化すると、グリッドペインが各セル(スタックペイン)のサイズを大きくしたことです。サイズは楕円の半径にバインドされているため、楕円の半径はそれに応じて増加しました。ウィンドウを小さくすると、グリッドペインは塗りつぶされたセルのサイズを変更しません。おそらく、現在の大きな楕円に合わせようとしているためです。
このアーティファクトを回避するにはどうすればよいですか? 列制約オブジェクトを追加できることはわかっていますが、FOR EACH COLUMN AND EACH ROW を 1 つ追加する必要がありますか? それはたくさんのオブジェクトです。他に方法はありますか?