我想创建一个扫雷游戏。首先,这将在按钮上起作用。我想我将在二维数组上工作,并且会像布尔数组那样在哪里出现炸弹,例如,如果booleanArray [0] [4]为真,则有一个炸弹。

现在,如何在按钮中实现呢?我可以在这些按钮上设置名称,然后单击某些按钮,然后从该div中获取名称。例如,当我单击第一个按钮时,我将得到“ 00”名称,然后我将得到第一个字母“ 0”和第二个字母“ 0”并将其解析为int。这就是我以前的booleanArray的索引,在这种情况下,它将是booleanArray [0] [0]。

那么,我可以用另一种更好的方法代替它吗?

这是我将创建按钮的方式:

for (int i = 0; i < 10; i++) {
        for (int j = 0; j < 10; j++) {
            JButton button = new JButton("");
            button.setPreferredSize(new Dimension(50, 50));
            button.setName(Integer.toString(i) + Integer.toString(j));
           }
     }


编辑
 我将有一个二维数组,它将反映我的按钮:
java - 扫雷艇,我该如何处理细胞-LMLPHP

现在,如何例如单击第一个按钮后检查炸弹是否击中?

最佳答案

只需按住二维按钮阵列,

JButton[][] myButtons = new JButton[10][10];


用它们来绘制它们,它们都用它们的值调用相同的方法

 for (int x=0; x<10; x++){
   for (int y=0; y<10; y++){
     myButtons[x][y] = new JButton("0");
     //add to page, or do it elsewhere
     myButtons[x][y].addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
           selectionButtonPressed(x,y);
        }
     });
   }
 }


然后调用yout方法selectionButtonPressed()会告诉您已按下了什么按钮,您可以采取行动,甚至可以通过myButtons[x][y].whatever()更改按钮

10-07 16:33