2015-12-14 26 views
-1

在我的Applet程序我有文本字段在我的公共類的頭聲明:如何清除數組中的TextField?

TextField numbers [][] = new TextField[5][5]; 

我也有一個應該點擊時清除所有的文本框按鈕。

現在我基本上有這樣的:

JButton b = new JButton("Clear"); 
b.addActionListener(new ActionListener(){ 
    public void actionPerformed(ActionEvent e){ 
     numbers.setText(""); 
    } 
}); 

但我發現了一個錯誤:

「的數組類型文本字段[] []不能調用的setText(空)」我怎樣才能解決這個問題?

回答

6

這裏的關鍵是:仔細閱讀錯誤信息,因爲它告訴你到底發生了什麼錯誤。

"Cannot invoke setText(null) on the array type TextField[][]"

你處理的數字變量,就好像它是一個單一的文本字段,它不是,所以你不能把它setText(...) - 而這是對象的二維數組。一個解決方案是考慮如何與類似二維數組的任何交互,如何調用數組中的每個項的方法:使用嵌套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];