我想創建幾個JFormattedTextFields
但總是得到ArrayIndexOutOfBoundsException
,我不明白爲什麼。 變量globalZaehler2
是51,然後我會得到異常。但我的循環說它必須是< field.length
(這是51)。那麼globalZaehler2
不能是51嗎? Eclipse中顯示我的異常,當我使用((JFormattedTextField)field[globalZaehler2]).selectAll();
ArrayIndexOutOfBoundsException當使用循環創建JFormattedTextField
for (globalZaehler2 = 0; globalZaehler2 < field.length; globalZaehler2++) {
if (field[globalZaehler2] instanceof JFormattedTextField) {
((JFormattedTextField)field[globalZaehler2]).addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
((JFormattedTextField)field[globalZaehler2]).selectAll();
// do something with the text in the field
}
});
}
}
您已經提供了很多代碼,但不是一個簡短但完整的示例 - 我們甚至不知道它失敗的位置。請注意,如果您在if語句中聲明瞭局部變量,那麼您的代碼將變得更簡單:最終的JFormattedTextField formattedField =(JFormattedTextField)字段[globalZaehler2];'。然後,您可以使用對局部變量的引用來替換30次以上的演員。可讀性的好處將是*巨大*。 –
現在好多了? – mavok
那麼它仍然不是一個簡短但完整的程序。它看起來像'globalZaehler2'不應該在循環中達到51,如果長度是51.啊......我看到這不是一個局部變量。那就是問題所在。 –