所以我的公共静态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方法中移出,以便可以使用类实例对其进行实例化,或者将其设置为静态以便可以直接对其进行实例化。

07-28 00:19