【发布时间】:2014-10-13 13:16:59
【问题描述】:
所以这里的问题相当简单;我有一个不能正常工作的“for”循环。 “for”循环位于第二个类的末尾,在“generateBlock()”方法中。这个“for”循环应该将标签的文本从数组标签[]更改为“Text changed”。
我遇到的问题是,如果我设置“for (i = 0; i 12; i++);”,我会得到一个越界错误,如果我设置“for ( i = 0; i 11; i++);",我没有那个越界错误。这很奇怪,因为数组的索引实际上由 0 到 11 组成。但是,这甚至不是主要问题。
主要问题是,如果我设置“for (i = 0; i
这很奇怪,因为 i
如果我手动设置“coloredWords.labels[0].setText("Text changed");"然后将这一行复制粘贴到它确实有效的所有其他值。
public class ColoredWordsExperiment {
JFrame frame;
JLabel[] labels;
ButtonHandler buttonHandler;
int i;
ColoredWordsExperiment(){
frame = new JFrame ();
button1 = new JButton("Matching");
labels = new JLabel[12];
for (i = 0; i < 12; i++) {
labels[i] = new JLabel("label");
labelContainer.add(labels[i]);
}
buttonHandler = new ButtonHandler(this);
button1.addActionListener(buttonHandler);
}
public static void main(String[] arg) {
new ColoredWordsExperiment():
}
}
-
class ButtonHandler implements ActionListener {
ColoredWordsExperiment coloredWords;
public ButtonHandler(ColoredWordsExperiment coloredWords) {
this.coloredWords = coloredWords;
}
@Override
public void actionPerformed(ActionEvent e){
if (e.getActionCommand().equals("Matching")) {
generateBlock();
}
}
public void generateBlock(){
int i = 0;
for (i = 0; i < 11; i++); {
coloredWords.labels[i].setText("Text changed");
}
}
}
【问题讨论】: