-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++;
}
}
}
음을 1000 지연을 설정할 필요가! –
이 질문을 삭제하는 것이 좋습니다. 나는 그것이 미래에 많은 도움이 될 것이라고 생각하지 않습니다. 이것은 프로그래밍 문제가 아니라 바보 같은 오류입니다. –