是否可以在方法中调用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]};
答案 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)