我有一个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()位于其中。
答案 0 :(得分:0)
是否可能因为它不是一个静态的空白,你可能需要一个类的实例来调用它?我当然不是很擅长java,所以如果我错了就很抱歉。
所以改为
private static void removeAllOldPanels(){ //<-here the program just jumps back to the actionperformed function and doesnt enter the loop
for(JPanel panel : panels){
getContentPane().remove(panel);
}
}
或
ChangeLevelClickListener myLevelClickListener = new ChangeLevelClickListener();
然后
myLevelClickListener.removeAllOldPanels();