所以我的公共静态void main中有一个嵌套类。它似乎已编译且正确,但是应该执行的功能似乎未执行。这是方法。
public static void main(String[]args)
{
LevelOne l = new LevelOne();
//Level Two not made yet just a place holder to show constructor with a different type
LevelTwo l2 = new LevelTwo();
//I make l2 first because the front frame is the last one created
Main m = new Main(l2);
Main m2 = new Main(l);
//To switch levels i am going to load them all in advance and then when the beat the level it will close the frame
class ChoiceListener implements ActionListener
{
Timer tm = new Timer(5, this);
//timer is used for the actionlistener
public void actionPerformed(ActionEvent e)
{
if(l.checkWin())
{
m2.setVisible(false);
m2.dispose();
}
}
}
}
这是应该在另一个类中访问级别l的变量。
public void setWin()
{
this.checkWin = true;
}
public boolean checkWin()
{
return this.checkWin;
}
checkWin是另一个类的私有实例字段。由于某些原因,当checkWin设置为true时,它仍然不会执行。任何帮助,将不胜感激!
最佳答案
在主要方法中添加以下行
Timer tm = new Timer(5, new ChoiceListener());
tm.start();
并删除
Timer tm = new Timer(5, this);
来自
ChoiceListener
。同样,将ChoiceListener
从类的main方法中移出,以便可以使用类实例对其进行实例化,或者将其设置为静态以便可以直接对其进行实例化。