当前位置: 首页 > 知识库问答 >
问题:

用数字/字符串填充GridPane

单于智
2023-03-14

我如何用整数或字符串填充我的GridPane?我目前正在数独GUI上工作,无法使其工作。我已经知道不可能用Java FX标签来显示它,因为它是Java.FX.scene.Control类。我需要以某种方式将数独值转移到GridPane中相应的坐标。

public class Controller {

GridPane sudokuGrid;
private Label[][] label = new Label[9][9];

public void generateButtonClicked(ActionEvent actionEvent) {
    SudokuBoard board = new SudokuBoard();
    BacktrackingSudokuSolver solver = new BacktrackingSudokuSolver();
    solver.fillBoard(0, 0, board);
    for (int i = 0; i < 9; i++) {
        for (int j = 0; j < 9; j++) {
            label[i][j] = String.valueOf(board.getDigit(i, j).getNum());
            sudokuGrid.add(???, i, j); 
        }
    }
}

共有1个答案

郭建华
2023-03-14

校正

我已经知道不可能用Java FX标签来显示它,因为它是Java.FX.scene.Control类。

这不是真的,标签是用来显示值的。

label[i][j] = new Label(String.valueOf(board.getDigit(i, j).getNum()));
sudokuGrid.add(label[i][j], i, j); 

你知道每次填充后如何清除网格的内容吗?我每次点击按钮都会得到一个数字一个数字

只将标签添加到网格中一次(创建网格时)。一旦将标签添加到网格中,就不需要再添加它们。因此,使用上面的代码在循环中运行并初始化网格。

初始化完成后,只需在需要时更新标签的文本即可。例如,单击“生成”按钮时:

for (int i = 0; i < 9; i++) {
    for (int j = 0; j < 9; j++) {
        label[i][j].setText(
               String.valueOf(board.getDigit(i, j).getNum())
        );
    }
}
for (int i = 0; i < 9; i++) {
    for (int j = 0; j < 9; j++) {
        label[i][j].setText(null);
    }
}

您的FXML控制器可以有一个initialize()方法,使用它在您的网格中创建标签。

 类似资料:
  • rank ▲ ✰ vote url 77 340 83 533 url 给字符串填充0 有什么方法可以给字符串左边填充0,这样就可以有一个特定长度. 字符串: >>> n = '4' >>> print n.zfill(3) >>> '004' 对于数字: >>> n = 4 >>> print '%03d' % n >>> 004 >>> print format(4, '03') # pyt

  • 问题内容: 但是我没有得到如何用零填充字符串。 输入:“ 129018”输出:“ 0000129018” 总输出长度应为TEN。 问题答案: 如果你的字符串仅包含数字,则可以将其设为整数,然后进行填充:

  • 假设我有一个整数数组,如和一个简单的字符串,如。我如何循环通过数组和填充每一个值。假设是这样的: 输出: 到目前为止,我已经尝试了以下内容: 但是,它在print语句中给出了。解决这个问题最好的方法是什么?

  • 我正在创建一个战舰游戏应用程序来学习OOP,Java。我想显示一个“空海”供玩家参考放置他们的舰队。下面是我的游戏板课的开始: 我把这叫做主要的:

  • 问题内容: 我想用空格填充字符串。我知道以下内容适用于零: 但是,当我想要这个时我该怎么办?: 当然,我可以测量字符串的长度并这样做,但是我想用最短的方法。 问题答案: 你可以使用 返回长度为的左对齐字符串。使用指定的fillchar填充(默认为空格)。如果小于,则返回原始字符串。

  • 我有一个 和 MapString只是包含大量的数字(除了数字没有其他字符)。 现在我想用mapString的第一个字符分配数组中的第一个值(map[0,0]),用mapString的第二个字符分配第二个值(map[0,1]),依此类推。我使用以下代码: 现在发生的几乎是我所希望的。问题是它给每个值分配两个数字,而不是一个。我也不知道他在使用什么数字,因为它们不是我的地图保存设置中的数字,但我可以自