2012-12-02 3 views
-2

javax.swing 패키지의 Timer 객체를 사용하여 스톱워치를 만들었습니다. 내가 인스턴스화 할 때 지연을 100 밀리 초로 설정했지만 타이머가 초 대신 밀리 초 단위로 실행되는 것 같습니다.타이머가 초 단위가 아닌 밀리 초 단위로 실행되는 이유는 무엇입니까?

import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 



public class StopWatch extends JApplet 
{ 
    private JPanel timePanel;   
    private JPanel buttonPanel;  
    private JTextField time; 
    private int seconds = 0; 
    boolean running = false; 
    private Timer timer; 

    public void init() 
    { 
     buildTimePanel(); 
     buildButtonPanel(); 

     setLayout(new GridLayout(3, 1)); 

     add(timePanel); 
     add(buttonPanel); 
    } 


    private void buildTimePanel() 
    { 
     timePanel = new JPanel(); 

     JLabel message1 = 
       new JLabel("Seconds: "); 

     time = new JTextField(10); 
     time.setEditable(false); 

     timePanel.setLayout(new FlowLayout(FlowLayout.RIGHT)); 

     timePanel.add(message1); 
     timePanel.add(time); 
    } 


    private void buildButtonPanel() 
    { 
     buttonPanel = new JPanel(); 

     JButton startButton = new JButton("Start"); 
     JButton stopButton = new JButton("Stop"); 

     startButton.addActionListener(new StartButtonListner()); 
     stopButton.addActionListener(new StopButtonListner()); 

     buttonPanel.add(startButton); 
     buttonPanel.add(stopButton); 

    } 

    private class StartButtonListner implements ActionListener{ 
    @Override 
    public void actionPerformed(ActionEvent e) { 
     if(running == false){ 
      running = true; 
      if(timer == null){ 
       timer = new Timer(100, new TimeActionListner()); 
       timer.start(); 
      } else { 
       timer.start(); 
      } 
     } 

    } 
    } 
    private class StopButtonListner implements ActionListener{ 
    @Override 
    public void actionPerformed(ActionEvent e) { 
     if(running == true){ 
      running = false; 
      timer.stop(); 
     } 

    } 
    } 
    private class TimeActionListner implements ActionListener{ 

    @Override 
    public void actionPerformed(ActionEvent e) { 
     time.setText(Integer.toString(seconds)); 
     seconds++; 
    } 
    } 


} 
+5

음을 1000 지연을 설정할 필요가! –

+2

이 질문을 삭제하는 것이 좋습니다. 나는 그것이 미래에 많은 도움이 될 것이라고 생각하지 않습니다. 이것은 프로그래밍 문제가 아니라 바보 같은 오류입니다. –

답변

3

예쁜 반드시 1000 밀리 초는 1 초에 해당 .... 100

+0

죄송합니다. 잡기 주셔서 감사합니다! – Zzz

관련 문제