java - 如何使 GridPane 中的所有单元格可见且大小相同?

标签 java javafx gridpane

我已经编写了下面的代码,这就是输出。是否可以使所有行和列(单元格)可见并使其全部具有一定的大小? 我想要的结果是拥有某种“网络”,因此我可以将一些内容放入单元格中,并确保所有表格的大小保持不变。

GridPane.setVgap()GridPane.setMinSize() 不是我想要的。

enter image description here

package sample;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;
import javafx.scene.control.Button;

public class Main extends Application {
    Stage window;

    @Override
    public void start(Stage primaryStage) throws Exception{
        window = primaryStage;
        GridPane grid = new GridPane();

        //buttons
        Button btn = new Button("8,5");
        GridPane.setConstraints(btn, 8,5);
        Button btn2 = new Button("1,3");
        GridPane.setConstraints(btn2, 1,3);

        grid.getChildren().addAll(btn, btn2);

        grid.setGridLinesVisible(true);
        Scene scene = new Scene(grid, 600,400);
        window.setScene(scene);
        window.show();
    }


    public static void main(String[] args) {
        launch(args);
    }
}

提前致谢!

最佳答案

您无法使用 GridPane 跨越无限网格。这不是布局的设计目的。 gridLinesVisible 功能的存在仅用于调试目的。

如果您知道行/列数,则可以实现具有相同大小的单元格:将 RowConstraints/ColumnConstraintspercentHeight/Width 使每行/列具有相同的大小:

int rowCount = 6;
int columnCount = 9;

RowConstraints rc = new RowConstraints();
rc.setPercentHeight(100d / rowCount);

for (int i = 0; i < rowCount; i++) {
    grid.getRowConstraints().add(rc);
}

ColumnConstraints cc = new ColumnConstraints();
cc.setPercentWidth(100d / columnCount);

for (int i = 0; i < columnCount; i++) {
    grid.getColumnConstraints().add(cc);
}

关于java - 如何使 GridPane 中的所有单元格可见且大小相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57927816/

相关文章:

java - 请求关注 JavaFX 阶段不会更改 macOS 左上角菜单栏标题

java - 如何在 JavaFX 中扩展 GridPane 以覆盖 add() 会导致 NPE、场景生成器中断

java - 如何使用 bluecove 在 Java 中断开 BT 设备?

java - Java中关于集合、枚举和迭代器的困惑

java - 在 JavaFX 元素中使用 css

java - 使用具有百分比宽度的列时,GridPane 没有为标签提供足够的空间

java - 如何创建一个永远在垂直方向滚动的滚动 Pane ?

java - 在java中,如果一个线程在wait()之前调用notify(),这如何不会导致第二个线程在第一个线程进入等待状态之前进入阻塞状态?

java - 如何让 Parse.com 推送通知在 Cordova/Phonegap Android 应用程序中工作?

animation - 在 JavaFX Canvas 中移动形状