在我的applet程序中,我在我的公共类头中声明了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)我该如何解决这个问题?
答案 0 :(得分:6)
这里的重要教训:批判性地阅读错误消息,因为它告诉您到底出了什么问题。
"无法在数组类型TextField [] []"
上调用setText(null)
您将数字变量视为单个TextField并且它不是,因此您无法在其上调用setText(...)
- 而不是#&#&# 39;一个二维的对象数组。一个解决方案是考虑如何与任何类似的二维数组进行交互,如何在数组中保存的每个项上调用方法:使用嵌套for循环遍历数组。
for (int i = 0; i < numbers.length; i++) {
for (int j = 0; j < numbers[i].length; j++) {
numbers[i][j].setText("");
}
}
此外,将TextField更改为JTextField,以便您使用所有Swing组件:
// change type from TextField to JTextField
JTextField numbers [][] = new JTextField[5][5];