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

在方法参数java中调用2D数组,java,arrays,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[

可以在方法中调用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++;
    }
}
编辑: 还有,我需要用同样的方法调用其他地方的所有按钮,比如我有这个

JButton[] button = {//call the array here of buttons here //};
    Random rand = new Random();
    JButton newbutton = button[rand.nextInt(button.length)];
我想调用button变量参数中的所有按钮。上面的代码将根据给定按钮的数量随机选择一个按钮。例如,如果我有

JButton[] button = {button1, button2, button3, button4, button5, button6};
给定上述代码,它将从列表中的一个按钮中进行选择,然后将所选按钮放入变量newbutton中。但是因为我使用了数组,所以在随机选择中不能有button1、button2、button等等。所以我想知道是否有可能调用这个按钮数组中的数组。我试过这个,但不起作用

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

正确的签名是:

 public void doSomething( JButton[][] myArray )
 {
        //doSomething
 }
传递带有该签名的任何变量都将在整个代码中起作用

要获得一个JButton数组,您需要

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

正确的签名是:

 public void doSomething( JButton[][] myArray )
 {
        //doSomething
 }
传递带有该签名的任何变量都将在整个代码中起作用

要获得一个JButton数组,您需要

 JButton[][] doubleArray = new JButton[1][1];
 JButton[] singleArray = doubleArray[0];
接收二维数组,例如

test(buttons)
test(buttons[i])

接收一个JButton,例如

test(buttons[i][j])

接收1D数组,如

test(buttons)
test(buttons[i])
接收二维数组,例如

test(buttons)
test(buttons[i])

接收一个JButton,例如

test(buttons[i][j])

接收1D数组,如

test(buttons)
test(buttons[i])

它将是:私有无效测试(JButton[]]按钮)

它将是:私有无效测试(JButton[]]按钮)

您可以调用为:

test(new JButton[3][3]);
您的方法如下所示:

private void test(JButton[][] buttons){...}
  • 已更新
您的方法如下所示:

JButton getRandomButton(JButton[] buttons) {
    Random rand = new Random();
    return buttons[rand.nextInt(buttons.length)];
}
for (int i = 0; i < buttons.length; i++) {
    JButton randomButton = getRandomButton(buttons[i]);
}
如果您使用上面的2D阵列,您可以按如下方式使用它:

JButton getRandomButton(JButton[] buttons) {
    Random rand = new Random();
    return buttons[rand.nextInt(buttons.length)];
}
for (int i = 0; i < buttons.length; i++) {
    JButton randomButton = getRandomButton(buttons[i]);
}
for(int i=0;i
您可以通过以下方式调用:

test(new JButton[3][3]);
您的方法如下所示:

private void test(JButton[][] buttons){...}
  • 已更新
您的方法如下所示:

JButton getRandomButton(JButton[] buttons) {
    Random rand = new Random();
    return buttons[rand.nextInt(buttons.length)];
}
for (int i = 0; i < buttons.length; i++) {
    JButton randomButton = getRandomButton(buttons[i]);
}
如果您使用上面的2D阵列,您可以按如下方式使用它:

JButton getRandomButton(JButton[] buttons) {
    Random rand = new Random();
    return buttons[rand.nextInt(buttons.length)];
}
for (int i = 0; i < buttons.length; i++) {
    JButton randomButton = getRandomButton(buttons[i]);
}
for(int i=0;i
我想了想,但不明白你到底想要什么。你能更详细地描述你添加的部分吗?我已经添加了更多的细节,希望它能更好地解释它。耶,我认为这应该行得通。但是有一个问题,当我调用这个方法时,我需要用我原来的按钮数组替换JButton[]按钮,但是,当我把原始数组作为参数输入时,它会给我一个错误。为什么?可以提供错误本身,他想要什么?是参数
按钮
按钮
的差异问题吗?对不起,我做错了,我用[3][3],[I][j]代替了。上面的例子有可能没有参数?我想了想,但不明白你到底想要什么。你能更详细地描述你添加的部分吗?我已经添加了更多的细节,希望它能更好地解释它。耶,我认为这应该行得通。但是有一个问题,当我调用这个方法时,我需要用我原来的按钮数组替换JButton[]按钮,但是,当我把原始数组作为参数输入时,它会给我一个错误。为什么?可以提供错误本身,他想要什么?是参数
按钮
按钮
的差异问题吗?对不起,我做错了,我用[3][3],[I][j]代替了。上面的示例是否可以没有参数?