2013-10-19 63 views
1

該程序的目的是從另一個用戶那裏獲得一個號碼,然後進行倒計時。我無法在Timer類中找到start()方法

我還沒有完成該程序,因爲我需要使用的方法不存在。

我想開始我的計時器,但我找不到方法開始()&任何其他方法。

我需要導入一個不同的類嗎? ----->定時器;

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類,你應該調用schedule方法,如:

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

多個問題:

  • 您正在使用的Swing java.util.Timer!使用java.swing.Timer,而不是你需要的start()函數:)。

  • 從沒有start()功能java.util.Timer沒有這種類型構造的

    旁白:new Timer(1000, tc)其中java.swing.Timer有:

    Timer(int delay, ActionListener litener)

  • TimeractionPerformed()功能您實例創作風格也是錯誤的。檢查How to Use Swing Timers教程和示例。

建議使用Swing的計時器,而不是通用定時器用於GUI相關的任務,因爲搖擺定時器都有着相同的,預先存在的計時器線程和GUI相關任務的自動執行event-dispatch thread。但是,如果您不打算從定時器中觸摸GUI,或者需要執行冗長的處理,則可以使用通用定時器。

3

定時器沒有啓動方法。你sholud這樣使用它:

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方法中編寫你的邏輯。