2013-10-19 4 views
1

이 프로그램의 목적은 다른 사용자로부터 숫자를 얻은 다음 카운트 다운하는 것입니다.타이머 클래스에서 start() 메서드를 찾을 수 없습니다

프로그램을 아직 끝내지 않았습니다. 사용해야하는 방법이 없기 때문입니다.

타이머를 시작하려고하지만 start() 메소드를 찾을 수 없습니다. & 다른 방법.

다른 클래스를 가져와야합니까? -----> 타이머; 당신은 Timer 클래스를 사용하는 경우

package timerprojz; 

import java.awt.GridLayout; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.util.Timer; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JTextField; 
import javax.swing.SwingConstants; 

public class TimeProjz extends JFrame { 

    JLabel promptLabel, timerLabel; 
    int counter; 
    JTextField tf; 
    JButton button; 
    Timer timer; 

public TimeProjz() { 

    setLayout(new GridLayout(2, 2, 5, 5)); // 2 row 2 colum and spacing 

    promptLabel = new JLabel("Enter seconds", SwingConstants.CENTER); 
    add(promptLabel); 

    tf = new JTextField(5); 
    add(tf); 

    button = new JButton("start timeing"); 
    add(button); 

    timerLabel = new JLabel("watting...", SwingConstants.CENTER); 
    add(timerLabel); 

    Event e = new Event(); 
    button.addActionListener(e); 

} 

public class Event implements ActionListener { 

    public void actionPerformed(ActionEvent event) { 


     int count = (int) (Double.parseDouble(tf.getText())); 

     timerLabel.setText("T ime left:" + count); 

     TimeClass tc = new TimeClass(count); 
     timer = new Timer(1000, tc); 
     timer.start(); <-----------------can not find symbol 


     } 
    } 
} 

답변

0

, 당신은 전화해야 예약 방법은 같은 :

Timer time = new Timer(); 
time.schedule(task, time); 
2

여러 문제 :

  • 당신은 스윙에서 java.util.Timer 사용하고 있습니다! 대신 start() 기능이있는 java.swing.Timer을 사용하십시오. 생성자의이 유형이없는 start() 기능 java.util.Timer을 가지고 있지에서 제외

  • : new Timer(1000, tc)java.swing.Timer가 있습니다

    Timer(int delay, ActionListener litener)

  • TimeractionPerformed() 함수의 인스턴스 생성 스타일도 잘못된 것입니다. 확인하십시오. How to Use Swing Timers 자습서 및 예.

스윙 타이머 모두가 공유 같은, 기존의 타이머 스레드와 GUI 관련 작업이 자동에서 실행하기 때문에 GUI 관련 작업을위한 스윙 타이머보다는 범용 타이머를 사용하는을 권장합니다 event-dispatch thread. 그러나 타이머에서 GUI를 건드릴 계획이 없거나 시간이 오래 걸리는 처리를 수행해야하는 경우 범용 타이머를 사용할 수 있습니다.

3

타이머의 시작 방법은 없습니다. 당신은 이것을 다음과 같이 사용합니다 :

import java.util.Timer; 
import java.util.TimerTask; 

/** 
* Simple demo that uses java.util.Timer to schedule a task 
* to execute once 5 seconds have passed. 
*/ 

public class Reminder { 
    Timer timer; 

    public Reminder(int seconds) { 
     timer = new Timer(); 
     timer.schedule(new RemindTask(), seconds*1000); 
    } 

    class RemindTask extends TimerTask { 
     public void run() { 
      System.out.format("Time's up!%n"); 
      timer.cancel(); //Terminate the timer thread 
     } 
    } 

    public static void main(String args[]) { 
     new Reminder(5); 
     System.out.format("Task scheduled.%n"); 
    } 
} 

로직을 run 메소드에 작성할 수 있습니다.

관련 문제