创建 Button 后将图像添加到 JavaFX 中的 Button
Adding image to a Button in JavaFX after Button is created
我正在使用 JavaFx 编写 MineSweeper 游戏。我在将按钮更改为仅包含图像而不包含文本时遇到问题。我的部分代码如下:
ImageView bomb;
Image bombImage = new Image(MineSweeper.class.getResourceAsStream("images/bomb.png"));
bomb = new ImageView(bombImage);
boolean[][] mineField = new boolean[row][column];
for (int i = 0; i < numMines; i++) {
int indexRow = isMine.nextInt(row);
int indexCol = isMine.nextInt(column);
System.out.println("row: " + indexRow + ", column: " + indexCol);
mineField[indexRow][indexCol] = true;
}
for (int i = 0; i < row; i++) {
for (int j = 0; j < column; j++) {
System.out.println("" + mineField[i][j]);
if (mineField[i][j] == true) {
board[i][j].setText("");
board[i][j].setGraphic(bomb);
} else {
board[i][j].setText("Nope!");
}
}
}
这不是实际游戏的运作方式。但我想检查是否可以将炸弹的图像添加到包含地雷的按钮中。当我 运行 代码时,只有一个地雷的图像出现,而其他按钮只有空文本或说 "Nope!." 如果我不知道如何向按钮添加图像,那么我将无法真正继续游戏的编程。我决定从头开始构建这个游戏,而不是使用 Scene Builder。我很感激任何建议。
只显示一张图片的原因是不能对两个Button
对象使用与graphic相同的ImageView
。
An optional icon for the Labeled. This can be positioned relative to
the text by using
setContentDisplay(javafx.scene.control.ContentDisplay). The node
specified for this variable cannot appear elsewhere in the scene
graph, otherwise the IllegalArgumentException is thrown. See the class
description of Node for more detail.
修改这一行...
board[i][j].setGraphic(bomb);
...到...
board[i][j].setGraphic(new ImageView(bombImage ));
这将为您的所有 Button
创建一个新的 ImageView
对象。
我正在使用 JavaFx 编写 MineSweeper 游戏。我在将按钮更改为仅包含图像而不包含文本时遇到问题。我的部分代码如下:
ImageView bomb;
Image bombImage = new Image(MineSweeper.class.getResourceAsStream("images/bomb.png"));
bomb = new ImageView(bombImage);
boolean[][] mineField = new boolean[row][column];
for (int i = 0; i < numMines; i++) {
int indexRow = isMine.nextInt(row);
int indexCol = isMine.nextInt(column);
System.out.println("row: " + indexRow + ", column: " + indexCol);
mineField[indexRow][indexCol] = true;
}
for (int i = 0; i < row; i++) {
for (int j = 0; j < column; j++) {
System.out.println("" + mineField[i][j]);
if (mineField[i][j] == true) {
board[i][j].setText("");
board[i][j].setGraphic(bomb);
} else {
board[i][j].setText("Nope!");
}
}
}
这不是实际游戏的运作方式。但我想检查是否可以将炸弹的图像添加到包含地雷的按钮中。当我 运行 代码时,只有一个地雷的图像出现,而其他按钮只有空文本或说 "Nope!." 如果我不知道如何向按钮添加图像,那么我将无法真正继续游戏的编程。我决定从头开始构建这个游戏,而不是使用 Scene Builder。我很感激任何建议。
只显示一张图片的原因是不能对两个Button
对象使用与graphic相同的ImageView
。
An optional icon for the Labeled. This can be positioned relative to the text by using setContentDisplay(javafx.scene.control.ContentDisplay). The node specified for this variable cannot appear elsewhere in the scene graph, otherwise the IllegalArgumentException is thrown. See the class description of Node for more detail.
修改这一行...
board[i][j].setGraphic(bomb);
...到...
board[i][j].setGraphic(new ImageView(bombImage ));
这将为您的所有 Button
创建一个新的 ImageView
对象。