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