Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何清除数组中的文本字段?_Java_Arrays_Swing_Methods_Applet - Fatal编程技术网

Java 如何清除数组中的文本字段?

Java 如何清除数组中的文本字段?,java,arrays,swing,methods,applet,Java,Arrays,Swing,Methods,Applet,在我的小程序中,我在公共类标题中声明了TextField,如下所示: TextField numbers [][] = new TextField[5][5]; 我还有一个按钮,当点击时,应该可以清除所有的文本框 现在我基本上有这个: JButton b = new JButton("Clear"); b.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){

在我的小程序中,我在公共类标题中声明了TextField,如下所示:

TextField numbers [][] = new TextField[5][5];
我还有一个按钮,当点击时,应该可以清除所有的文本框

现在我基本上有这个:

JButton b = new JButton("Clear");
b.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e){
        numbers.setText("");
    }
});
但是我得到了一个错误:“不能在数组类型TextField[]上调用setText(null)”


如何修复此问题?

这里的关键一课:批判性地阅读错误消息,因为它准确地告诉您错误所在

“无法在数组类型TextField[]上调用setText(null)”

您将numbers变量视为一个单独的TextField,而不是,因此不能对其调用
setText(…)
,而是一个2D对象数组。解决方案是考虑如何与任何类似的二维数组交互,如何对数组中的每个项调用方法:使用嵌套for循环在数组中迭代

for (int i = 0; i < numbers.length; i++) {
    for (int j = 0; j < numbers[i].length; j++) {
       numbers[i][j].setText("");
    }
}
// change type from TextField to JTextField
JTextField numbers [][] = new JTextField[5][5];