java - 如何将我的二维数组填充为相同的值
问题描述
我希望网格上的所有按钮在每次单击时都从空白变为 X 到 O,然后又变回空白。它目前仅适用于数组中的第一个元素,因为 I 和 j 的值都是 0。我需要一个类似于我初始化按钮的循环吗?
我虽然两个嵌套的 for 循环是我需要添加的,但是我已经尝试过了,它已经奏效了。
有什么建议么?
解决方案
您使用最终字段i
并j
用于设置事件处理程序。如果您希望所有按钮都以相同的方式处理单击,则需要将事件处理程序注册到每个按钮。
由于您只能在循环内有效地访问最终变量,因此您需要制作循环变量的最终副本或简单地为Button
.
final List<String> values = Arrays.asList("", "X", "O");
for(int i=0; i<btn.length; i++){
for(int j=0; j<btn.length;j++){
final Button button = new Button("");
button.setOnAction(event -> {
int valueIndex = values.indexOf(button.getText());
button.setText(values.get((valueIndex+1) % values.size()));
});
// Initializing 2D buttons with values i,j
btn[i][j] = button;
button.setPrefSize(35, 40);
gridPane.add(button, i, j);
// button.setDisable(false);
}
}
推荐阅读
- python - 与 Arduino 和 Python 的慢速串行通信
- python - 如何使用文本文件中的元素准确搜索目录?
- node.js - 基于复杂应用程序nestjs的路径问题已解决
- regex - 退格字符串比较 Leetcode 问题
- html - 背景图像 svg sa 数据:图像未显示
- c# - 从 Microsoft Dynamics 365 中的插件获取文件
- html - 如何在 div/容器中居中文本和图像
- python - 批量从postgres数据库中获取数据(python)
- java - 为什么流布局上的按钮会离开屏幕?
- xcode - 如何使用 SwiftUI 在 MapView 中获取放置的图钉以保存坐标并以字符串形式呈现它们?