Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ActionPerformed跳出方法_Java_Swing_User Interface_Actionlistener - Fatal编程技术网

Java ActionPerformed跳出方法

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); } }

我有一个ActionListener:

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