所以我在public static 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时,它仍然不会执行。任何帮助将不胜感激!
答案 0 :(得分:1)
在主方法
中添加以下行Timer tm = new Timer(5, new ChoiceListener());
tm.start();
并删除
Timer tm = new Timer(5, this);
来自ChoiceListener
。同样将ChoiceListener
移出类中的main方法,以便可以使用类实例对其进行实例化,或者将其设置为静态,以便可以直接实例化。