java - 当用户单击按钮时在按钮上显示图像
问题描述
当用户单击该按钮时,我试图将图像放在按钮上。该按钮排列在具有类似按钮类型的网格窗格布局中。问题是按钮被调整大小我不知道为什么。
这是我的 Controller.java 的一部分
//box row where button is clicked
int row = GridPane.getRowIndex((Node) actionEvent.getSource());
//box column where button is clicked
int column = GridPane.getColumnIndex((Node) actionEvent.getSource());
if (grid.markGrid(row, column, playerPlaying))
{
//set mark on the Button
Image mark;
if (playerPlaying == Player.PLAYER1)
mark = new Image(getClass().getResourceAsStream("x.png"));
else
mark = new Image(getClass().getResourceAsStream("circle.png"));
Button buttonClicked = (Button) actionEvent.getSource();
ImageView imageView = new ImageView(mark);
imageView.setFitHeight(buttonClicked.getHeight());
imageView.setFitWidth(buttonClicked.getWidth());
buttonClicked.setGraphic(imageView);
这是我的 fxml 文件的一部分
<GridPane fx:id="buttonsGrid">
<columnConstraints>
<ColumnConstraints hgrow="ALWAYS"/>
<ColumnConstraints hgrow="ALWAYS"/>
<ColumnConstraints hgrow="ALWAYS
</columnConstraints>
<rowConstraints>
<RowConstraints vgrow="ALWAYS"/>
<RowConstraints vgrow="ALWAYS"/>
<RowConstraints vgrow="ALWAYS"/>
</rowConstraints>
<Button mnemonicParsing="false" GridPane.rowIndex="0" GridPane.columnIndex="0" styleClass="grid-button"
prefWidth="150" prefHeight="150" maxHeight="Infinity" maxWidth="Infinity"
onAction="#gridClick" GridPane.valignment="CENTER" GridPane.halignment="CENTER"/>
<Button mnemonicParsing="false" GridPane.rowIndex="0" GridPane.columnIndex="1" styleClass="grid-button"
prefWidth="150" prefHeight="150" maxHeight="Infinity" maxWidth="Infinity"
onAction="#gridClick" GridPane.valignment="CENTER" GridPane.halignment="CENTER"/>
<Button mnemonicParsing="false" GridPane.rowIndex="0" GridPane.columnIndex="2" styleClass="grid-button"
prefWidth="150" prefHeight="150" maxHeight="Infinity" maxWidth="Infinity"
onAction="#gridClick" GridPane.valignment="CENTER" GridPane.halignment="CENTER"/>
<Button mnemonicParsing="false" GridPane.rowIndex="1" GridPane.columnIndex="0" styleClass="grid-button"
prefWidth="150" prefHeight="150" maxHeight="Infinity" maxWidth="Infinity"
onAction="#gridClick" GridPane.valignment="CENTER" GridPane.halignment="CENTER"/>
<Button mnemonicParsing="false" GridPane.rowIndex="1" GridPane.columnIndex="1" styleClass="grid-button"
prefWidth="150" prefHeight="150" maxHeight="Infinity" maxWidth="Infinity"
onAction="#gridClick" GridPane.valignment="CENTER" GridPane.halignment="CENTER"/>
<Button mnemonicParsing="false" GridPane.rowIndex="1" GridPane.columnIndex="2" styleClass="grid-button"
prefWidth="150" prefHeight="150" maxHeight="Infinity" maxWidth="Infinity"
onAction="#gridClick" GridPane.valignment="CENTER" GridPane.halignment="CENTER"/>
<Button mnemonicParsing="false" GridPane.rowIndex="2" GridPane.columnIndex="0" styleClass="grid-button"
prefWidth="150" prefHeight="150" maxHeight="Infinity" maxWidth="Infinity"
onAction="#gridClick" GridPane.valignment="CENTER" GridPane.halignment="CENTER"/>
<Button mnemonicParsing="false" GridPane.rowIndex="2" GridPane.columnIndex="1" styleClass="grid-button"
prefWidth="150" prefHeight="150" maxHeight="Infinity" maxWidth="Infinity"
onAction="#gridClick" GridPane.valignment="CENTER" GridPane.halignment="CENTER"/>
<Button mnemonicParsing="false" GridPane.rowIndex="2" GridPane.columnIndex="2" styleClass="grid-button"
prefWidth="150" prefHeight="150" maxHeight="Infinity" maxWidth="Infinity"
onAction="#gridClick" GridPane.valignment="CENTER" GridPane.halignment="CENTER"/>
</GridPane>
这是调整大小的网格的图像
解决方案
推荐阅读
- webpack - 如何通过代码拆分在 Vue/Webpack webapp 中部分加载 Sass/样式表文件
- fortran - Intel Fortran Compiler 2015 (Mac OS X) 的 TYPE(*) 语法错误
- javascript - 如何使用 JQUERY 在不刷新页面的情况下对 PHP 循环进行排序
- python-3.x - 如果按下鼠标,如何使python脚本执行某些操作?
- api - 如何创建私有和公共 API 架构
- ruby-on-rails - 只有在我单击 Rails 中的提交按钮后,如何启动每个循环?
- docker - 在 Docker 群设置中路由传入流量
- django - 如何在 Django Rest Framework 中使用 JWT 令牌?
- java - Java-如何在java中编写渐变文本?
- excel - 在单元格内进行多次搜索,如果找到则偏移结果