【发布时间】:2014-07-11 07:50:06
【问题描述】:
我有一个 ActionListener:
class ChangeLevelClickListener implements ActionListener{
public ChangeLevelClickListener(){ }
@Override
public void actionPerformed(ActionEvent arg0) {
removeAllOldPanels();
rebuildLevel(2);
}
}
当我调试程序时,方法 removeAllOldPanels() 被调用:
private void removeAllOldPanels(){ //<-here the program just jumps back to the actionperformed function and doesnt enter the loop
for(JPanel panel : panels){
getContentPane().remove(panel);
}
}
但是正如代码中标记的那样,程序只是没有进入函数,也没有例外。 这个 ActionListener 是 removeAllOldPanels() 所在类中的一个类。
【问题讨论】:
-
可能是您的
panels数组为空。添加System.out.println()语句并查看在控制台上执行的语句。 -
考虑发布SSCCE 以帮助减少猜测。
-
@icza 但是程序甚至没有进入方法,我保证面板数组充满了内容
-
@CuppleKay 那么在这种情况下,您需要提供更多信息。或者输入
System.out.println()语句并将打印到输出中的内容发布给我们。 -
@icza 我是否必须将任何内容设置为公开,因为 ActionListener 类在另一个类中或者是私有的可以吗?
标签: java swing user-interface actionlistener