Java:尝试暂停程序时,整个程序会冻结

时间:2019-07-18 10:28:35

标签: java swing wait notify

我这里有一个带按钮的程序。一个是暂停按钮,另一个是继续按钮。当我单击“暂停”按钮时,程序停止运行,但是当我尝试单击“恢复”按钮时,没有任何反应,我什至无法单击该按钮,甚至无法在窗口中单击X。而且按钮上的点击效果也无效。所以我假设程序由于某种原因被冻结了

public void createButtons() {
   fastForwardButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            synchronized(this) {
                    this.notify();
                }
            }
        });
  stopButton.addActionListener(new ActionListener() {
       public void actionPerformed(ActionEvent e) {
           synchronized(this) {
               try {
                  this.wait();
               } catch (InterruptedException e3) {
                        e3.printStackTrace();
               }
           }
      }
  });
}

public static void main(String args[]) {
   new Sim().start();
}

任何想法都将不胜感激,谢谢

更新: 该程序的目的是模拟游戏,如果您可以暂停游戏然后继续游戏,则我拥有这两个按钮。但总而言之,我真的只是想暂停整个程序并恢复它

1 个答案:

答案 0 :(得分:-2)

去了一个小小的黑客,我只是在希望暂停的地方放置了一个while循环,并添加了一个isPaused状态,根据所按下的按钮,该状态为true或false。 while循环将是一个无限循环,直到有人单击恢复为止,这会将状态更新为false,并且事物将自行恢复。最终解决得很好