1

我想创建一个方法,该方法返回包含它们的字母的按钮数组。我写了这个方法,但我不确定到底发生了什么?

public JButton [] button(){
    JButton [] button = null ;
    for(int i = 0 ;i<26 ;i++){
        String letter  = String.valueOf((char)(i + 'A'));
        button[i] = new JButton(letter);
    }
    return  button() ;
}
4

3 回答 3

6

首先创建数组如下

JButton [] button = new JButton[26];  // see null is removed.

并正确返回

return button; // removed paranthesis
于 2013-09-03T10:30:09.580 回答
4

您正在递归且无限期地调用该方法:

return button() ;

那应该是:

return button;

最好避免混淆命名方法和变量。此外,您需要正确初始化按钮数组:

JButton[] button = new JButton[26];
于 2013-09-03T10:28:27.003 回答
1

你会得到一个 NullPointerException 因为你的数组没有初始化:

JButton [] button = new JButton[26];

在您的 return 语句中,您再次调用该方法,这将导致无限循环。

return button; // removed paranthesis

这将返回您在循环中创建的数组。

您的代码应如下所示:

public JButton [] button(){
    JButton [] button = new JButton[26];
    for(int i = 0 ;i<26 ;i++){
        String letter  = String.valueOf((char)(i + 'A'));
        buttons[i] = new JButton(letter);
    }
    return button;
}

对于您的问题,代码的作用是:

它创建一个 JButtons 数组,标有一个字母 from AtoZ

于 2013-09-03T10:30:50.017 回答