使用百分比ColumnConstraints调整GridPane内部的Rectangle大小

时间:2013-03-21 19:24:54

标签: resize javafx-2 shape

我有GridPane n 列& n 行,每个单元格中有一个Rectangle(几乎像棋盘一样)。我试图让Rectangle扩展以占用每个单元格中的所有可用空间,而不会扩展太远。尝试了ColumnConstraints方法,但仍然不知道将Rectangle s'宽度绑定到什么位置。

解决方案:Rectangle宽度和高度绑定到NumberBinding

例如,制作棋盘:

GridPane board = new GridPane();
NumberBinding rectsAreaSize = Bindings.min(board.heightProperty(), board.widthProperty());

for(int i = 0; i < size; ++i)
{
    for(int j = 0; j < size; ++j)
    {
        Rectangle rect;
        if(i % 2 == 0 ^ j % 2 == 0) // ^ is the XOR operator
        {
            rect = new Rectangle(15.0, 15.0, Color.WHITE);
        }
        else
        {
            rect = new Rectangle(15.0, 15.0, Color.BLACK);
        }
        rect.widthProperty().bind(rectsAreaSize.divide(size));
        rect.heightProperty().bind(rectsAreaSize.divide(size));

        board.add(rect, i, j);
        GridPane.setHalignment(rect, HPos.CENTER);
    }
}

参考文献:

0 个答案:

没有答案