【问题标题】:javafx make a grid of buttonsjavafx 制作一个按钮网格
【发布时间】:2015-06-23 04:04:20
【问题描述】:

我想用特定数量的按钮制作一个网格。 我知道需要多少按钮,因为我得到了行数和列数。

我可以做一个循环,但我不知道如何将按钮放置在彼此相邻和下方。
其次,按钮需要一个Text和一个Id,text没问题,但是怎么给它们一个id呢?
最后,也可能是最困难的,可能会出现很多行,所以滚动条应该可用。

最后应该是这样的:

【问题讨论】:

  • 好吧,实际上我是 javafx 的新手,对于所有其他场景,我都使用了场景构建器,所以我查了一些,但我真的不知道如何将按钮放在彼此旁边和下方。 .我是否必须在场景中给它一个起始坐标我真的不知道,我展示了一张图片它应该是什么样子。我知道如何制作圆形按钮(我查了一下,css 样式表)
  • 我添加了一些我目前拥有的代码,问题是按钮的 id
  • id 有什么问题?您始终可以在循环内设置button.setId("some_value");
  • fangio,看来您已经有了一个可行的解决方案,只需删除您问题中的代码,将其作为答案,然后在 48 小时的时间限制后,mark it correct
  • @fangio 请提出不同的问题,而不是在评论中提出不相关的问题。保留评论线程以进一步澄清当前发布的问题。

标签: java button javafx grid


【解决方案1】:

最好的解决办法是:

itemNumber starts from 0 to N: 
    Grid.getChildren().get(itemNumber).setId("bt"+itemNumber);
    Grid.getChildren().get(itemNumber).getId();

【讨论】:

    【解决方案2】:
    @Override
    public void start(Stage stage) {
        GridPane grid = new GridPane();
        grid.setPadding(new Insets(BUTTON_PADDING));
        grid.setHgap(BUTTON_PADDING);
        grid.setVgap(BUTTON_PADDING);
    
        for (int r = 0; r < NUM_BUTTON_LINES; r++) {
            for (int c = 0; c < BUTTONS_PER_LINE; c++) {
                int number = NUM_BUTTON_LINES * r + c;
                Button button = new Button(String.valueOf(number));
                grid.add(button, c, r);
            }
        }
    
        ScrollPane scrollPane = new ScrollPane(grid);
    
        stage.setScene(new Scene(scrollPane));
        stage.show();
    }
    

    【讨论】:

      猜你喜欢
      • 2021-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-05
      • 2015-03-08
      • 1970-01-01
      • 2013-02-27
      • 1970-01-01
      相关资源
      最近更新 更多