Java ActionPerformed跳出方法
我有一个ActionListener:Java ActionPerformed跳出方法,java,swing,user-interface,actionlistener,Java,Swing,User Interface,Actionlistener,我有一个ActionListener: class ChangeLevelClickListener implements ActionListener{ public ChangeLevelClickListener(){ } @Override public void actionPerformed(ActionEvent arg0) { removeAllOldPanels(); rebuildLevel(2); } }
class ChangeLevelClickListener implements ActionListener{
public ChangeLevelClickListener(){ }
@Override
public void actionPerformed(ActionEvent arg0) {
removeAllOldPanels();
rebuildLevel(2);
}
}
当我调试程序时,会调用RemoveAllPanels方法:
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是RemoveAllPanels所在类中的一个类。由于它不是静态空,您可能需要类的实例来调用它吗?我当然不太擅长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);
}
然后
myLevelClickListener.removeAllOldPanels();
可能是面板数组为空。添加Studio.Out.PrtLn语句并查看在控制台上执行的语句。考虑发布A以帮助减少猜测。@ ICAZA但程序甚至不输入该方法,并且我保证面板数组已满。content@CuppleKay那么在这种情况下,你需要提供更多的信息。或者放入System.out.println语句,并将打印到输出中的内容发布给我们。@icza因为ActionListener类在另一个类中或是私有的,所以我是否必须将任何内容设置为public?
myLevelClickListener.removeAllOldPanels();