在方法参数java中调用2D数组

时间:2014-02-24 18:10:39

标签: java arrays

是否可以在方法中调用2D数组?

JButton[][] buttons = new JButton[3][3];
int number = 0;

for (int i = 0; i < buttons.length; i++) {
    for (int j = 0; j < buttons.length; j++){
        buttons[i][j] = new JButton(); // create buttons
        frame.add(buttons[i][j]);
        buttons[i][j].setText(".");
        buttons[i][j].setName("button" + number);
        number++;
    }
}

我试过这个但是没有用。

private void test(buttons[i][j]) {

}

编辑: 而且,我是否需要使用相同的方法来调用其他地方的所有按钮,例如我有这个。

JButton[] button = {//call the array here of buttons here //};
    Random rand = new Random();
    JButton newbutton = button[rand.nextInt(button.length)];

我想调用按钮变量参数中的所有按钮。上面的代码将按给定按钮的数量随机选择一个按钮。例如,如果我有;

JButton[] button = {button1, button2, button3, button4, button5, button6};

根据上面的代码,它将从列表中的一个按钮中进行选择,然后将所选按钮放在变量newbutton中。但由于我使用了一个数组,我在随机选择中不能有button1,button2,button等。所以我想知道是否有可能以某种方式调用这个按钮数组中的数组。我试过这个,但它不起作用。

JButton[] button = {buttons[i][j]};

4 个答案:

答案 0 :(得分:2)

正确的签名是:

 public void doSomething( JButton[][] myArray )
 {
        //doSomething
 }

传递带有该签名的任何变量将在整个代码中起作用。

要获得其中一个JButton数组,你可以

 JButton[][] doubleArray = new JButton[1][1];
 JButton[] singleArray = doubleArray[0];

答案 1 :(得分:1)

private void test(JButton[][] buttons){
}

接收二维数组,例如

test(buttons)

private void test(JButton button){
}

接收JButton,例如

test(buttons[i][j])

private void test(JButton[] buttons){
}

接收一维数组,例如

test(buttons[i])

答案 2 :(得分:1)

你可以打电话给:

test(new JButton[3][3]);

您的方法将如下所示:

private void test(JButton[][] buttons){...}
  • 更新

您的方法如下:

JButton getRandomButton(JButton[] buttons) {
    Random rand = new Random();
    return buttons[rand.nextInt(buttons.length)];
}

如果您使用上面的2D数组,可以使用它如下:

for (int i = 0; i < buttons.length; i++) {
    JButton randomButton = getRandomButton(buttons[i]);
}

答案 3 :(得分:0)

它将是:private void test(JButton [] [] button)