ActionPerformed跳出方法

时间:2014-07-11 07:50:07

标签: java swing user-interface actionlistener

我有一个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()位于其中。

1 个答案:

答案 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();