我如何获取按钮来填充javafx网格窗格?

恩科玛

Java Swing具有GridLayout,它允许您为诸如3X4之类的小部件数组指定大小。然后,小部件将填充它们占据的面板。您如何在JavaFX中获得类似的效果?

詹姆斯·D

我想您是在问如何让节点填充网格窗格中分配给其单元的空间。

有两种方法可以做到这一点。您可以使用静态GridPane方法将GridPane特定于属性的设置应用于节点:

GridPane.setFillWidth(myButton, true);
GridPane.setFillHeight(myButton, true);

另一种方法是在网格窗格本身上指定列约束和行约束:

GridPane grid = new GridPane();
for (int rowIndex = 0; rowIndex < numRows; rowIndex++) {
    RowConstraints rc = new RowConstraints();
    rc.setVgrow(Priority.ALWAYS) ; // allow row to grow
    rc.setFillHeight(true); // ask nodes to fill height for row
    // other settings as needed...
    grid.getRowConstraints().add(rc);
}
for (int colIndex = 0; colIndex < numColumns; colIndex++) {
    ColumnConstraints cc = new ColumnConstraints();
    cc.setHgrow(Priority.ALWAYS) ; // allow column to grow
    cc.setFillWidth(true); // ask nodes to fill space for column
    // other settings as needed...
    grid.getColumnConstraints().add(cc);
}

无论哪种情况,都需要让节点增长,以便它们遵守网格窗格发出的增长请求。因此,例如:

Button myButton = new Button("Click");
myButton.setMaxSize(Double.MAX_VALUE, Double.MAX_VALUE);
grid.add(myButton, 0, 0);

SSCCE(使用行和列约束方法):

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

public class KeyPad extends Application {

    @Override
    public void start(Stage primaryStage) {
        GridPane grid = new GridPane();
        int numRows = 4 ;
        int numColumns = 3 ;
        for (int row = 0 ; row < numRows ; row++ ){
            RowConstraints rc = new RowConstraints();
            rc.setFillHeight(true);
            rc.setVgrow(Priority.ALWAYS);
            grid.getRowConstraints().add(rc);
        }
        for (int col = 0 ; col < numColumns; col++ ) {
            ColumnConstraints cc = new ColumnConstraints();
            cc.setFillWidth(true);
            cc.setHgrow(Priority.ALWAYS);
            grid.getColumnConstraints().add(cc);
        }

        for (int i = 0 ; i < 9 ; i++) {
            Button button = createButton(Integer.toString(i+1));
            grid.add(button, i % 3, i / 3);
        }
        grid.add(createButton("#"), 0, 3);
        grid.add(createButton("0"), 1, 3);
        grid.add(createButton("*"), 2, 3);

        Scene scene = new Scene(grid);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    private Button createButton(String text) {
        Button button = new Button(text);
        button.setMaxSize(Double.MAX_VALUE, Double.MAX_VALUE);
        button.setOnAction(e -> System.out.println(text));
        return button ;
    }

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

javafx将按钮添加到网格窗格

来自分类Dev

JavaFX:自定义网格窗格中按钮的宽度

来自分类Dev

javafx将按钮添加到网格窗格

来自分类Dev

JavaFX:如何获取网格窗格中的列和行索引?

来自分类Dev

JavaFX:如何获取网格窗格中的列和行索引?

来自分类Dev

如何在网格窗格(javaFX)中获取信息

来自分类Dev

如何使组件填充JavaFX上的拆分窗格?

来自分类Dev

Javafx网格窗格布局分配

来自分类Dev

Javafx网格窗格宽度设置

来自分类Dev

在JavaFX中触摸滚动网格窗格

来自分类Dev

Javafx 网格窗格中心元素

来自分类Dev

JavaFX 在 VBox-es 的网格窗格中创建单选按钮行为

来自分类Dev

获取添加到网格窗格的按钮数组中的位置[x] [y]的值

来自分类Dev

如何在javafx中手动跨过网格窗格的列?

来自分类Dev

如何在javafx中手动跨过网格窗格的列?

来自分类Dev

JavaFX标签内容未显示在网格窗格中

来自分类Dev

我可以使用 springboot-javafx-support 从初级阶段获取根窗格吗?

来自分类Dev

如何在Javafx中对齐对话框窗格的确定按钮?

来自分类Dev

如何刷新javafx中的窗格

来自分类Dev

如何更改JavaFX TabPane窗格类型

来自分类Dev

JavaFX-用多个组件拉伸和填充窗格

来自分类Dev

通过拖动来调整javafx中窗格的大小

来自分类Dev

如何通过在 JavaFX 中使用从 choiceBOX 中选择的值来打开另一个窗格?

来自分类Dev

我如何获得一个数据模板来填充统一的网格单元?

来自分类Dev

(JavaFX FXML)在尝试创建自定义按钮时,如何获取图像以完全填充按钮?

来自分类Dev

填充窗格中的宽度

来自分类Dev

如何获得4by4网格来显示我所有的拼图?

来自分类Dev

如何在javafx中更改窗格的颜色?

来自分类Dev

JavaFX-如何在锚定窗格中添加容器

Related 相关文章

  1. 1

    javafx将按钮添加到网格窗格

  2. 2

    JavaFX:自定义网格窗格中按钮的宽度

  3. 3

    javafx将按钮添加到网格窗格

  4. 4

    JavaFX:如何获取网格窗格中的列和行索引?

  5. 5

    JavaFX:如何获取网格窗格中的列和行索引?

  6. 6

    如何在网格窗格(javaFX)中获取信息

  7. 7

    如何使组件填充JavaFX上的拆分窗格?

  8. 8

    Javafx网格窗格布局分配

  9. 9

    Javafx网格窗格宽度设置

  10. 10

    在JavaFX中触摸滚动网格窗格

  11. 11

    Javafx 网格窗格中心元素

  12. 12

    JavaFX 在 VBox-es 的网格窗格中创建单选按钮行为

  13. 13

    获取添加到网格窗格的按钮数组中的位置[x] [y]的值

  14. 14

    如何在javafx中手动跨过网格窗格的列?

  15. 15

    如何在javafx中手动跨过网格窗格的列?

  16. 16

    JavaFX标签内容未显示在网格窗格中

  17. 17

    我可以使用 springboot-javafx-support 从初级阶段获取根窗格吗?

  18. 18

    如何在Javafx中对齐对话框窗格的确定按钮?

  19. 19

    如何刷新javafx中的窗格

  20. 20

    如何更改JavaFX TabPane窗格类型

  21. 21

    JavaFX-用多个组件拉伸和填充窗格

  22. 22

    通过拖动来调整javafx中窗格的大小

  23. 23

    如何通过在 JavaFX 中使用从 choiceBOX 中选择的值来打开另一个窗格?

  24. 24

    我如何获得一个数据模板来填充统一的网格单元?

  25. 25

    (JavaFX FXML)在尝试创建自定义按钮时,如何获取图像以完全填充按钮?

  26. 26

    填充窗格中的宽度

  27. 27

    如何获得4by4网格来显示我所有的拼图?

  28. 28

    如何在javafx中更改窗格的颜色?

  29. 29

    JavaFX-如何在锚定窗格中添加容器

热门标签

归档