2011-09-22 2 views
1

간단한 대상 슈팅 게임을 만들고 있습니다. 카운트 다운 타이머가 레이블 안에 있고 패널 안의 임의의 위치에서 깜박이는 개체가 있습니다. 개체를 클릭 할 때마다. 그 개체를 멈추게하는 개체의 타이머가 멈추지 만 카운트 다운 타이머는 내 문제가 아닙니다. 카운트 다운 타이머도 중지해야합니다.개체 촬영 후 타이머 기능을 중지하는 방법은 무엇입니까?

누군가이 문제에 관해 나를 도와 줄 수 있습니까? 당신이 본 적이있는 경우 (Timer을 확장하고 만든 익명 클래스의인지하지 못하는 것을,

private void starting() 
{ 
    new Timer(TIMER_PERIOD, new ActionListener() 
    { 
     @Override 
     public void actionPerformed(ActionEvent e) 
     { 
      if (count++ < MAX_COUNT) 
      { 
       String text = "Time remaining: (" + (MAX_COUNT - count) + ") seconds left"; 
       setCountDownLabelText(text); 
       Date date = new Date(); 
       setCountDownPanelText(date); 

      } 
      else 
      { 
       ((Timer) e.getSource()).stop(); 
       randomTimer.stop(); 
       JOptionPane.showMessageDialog(null, "Game Over"); 
       System.exit(0); 
      } 
     } 
    }).start(); 
} 
+2

설명하는 문제를 나타내는 [sscce] (http://sscce.org/)를 제공하십시오. – trashgod

답변

5

그것은 당신이 모든 코드를 이해하지 못하는 저를 친다 : 여기

코드입니다 설명서)에는 질문하는 것을 수행하는 stop() 함수가 있습니다.

타이머에 대한 참조를 저장해야합니다.

private javax.swing.Timer timer; 

private void starting() { 
    timer = new Timer(TIMER_PERIOD, new ActionListener() 
    { 
     @Override 
     public void actionPerformed(ActionEvent e) 
     { 
      // do stuff 

      // stop the timer 
      timer.stop(); 

      // do other stuff 
     } 
    } 
} 
+1

-1 별도의 클래스를 섞기 위해서 (때문에) a) Swing로 사용하는 Timer는 스윙 패키지의 것 (_not_info 내의 것) b) util.Timer에는 cancel 메서드가 있지만, ActionListener를 취하는 생성자는 없다 c) swing.Timer에는 메소드 취소가 없지만 메소드 중지가 있습니다. – kleopatra

+1

@Charles Goodwin 1) java.util.Timer to javax.swing.Timer, 2) timer.stop(), 3) todays Java6 또는 7 API – mKorbel

+0

에 링크 @mKorbel 완료 –

관련 문제