3

Timer400 MSc を待ってから、「hi !」と出力する a を作成したいと考えています。(例えば)。私はそれを行う方法を知っていますjavax.swing.Timer

    ActionListener action = new ActionListener()
{
    @Override
    public void actionPerformed(ActionEvent e)
    {
       System.out.println("hi!");
    }
};

プラス :

    timer = new Timer(0, action);
    timer.setRepeats(false);
    timer.setInitialDelay(400);
    timer.start();

しかし、私が知っているように、これは間違いなく良い方法ではありません。これTimerは Swing の作業のためのものです。正しい方法でそれを行う方法は?(使用せずにThread.sleep())

4

4 に答える 4

10
Timer t = new Timer();
t.schedule(new TimerTask() {

            @Override
            public void run() {
                System.out.println("Hi!");

            }
        }, 400);
于 2013-01-22T08:19:31.527 に答える
1
import java.text.SimpleDateFormat;
import java.util.Calendar;

public class currentTime {

    public static void main(String[] args) {
        Calendar cal = Calendar.getInstance();
        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
        System.out.println( sdf.format(cal.getTime()) );
    }

}
于 2015-08-10T16:11:58.677 に答える
1

Quartz スケジューラーを検討できます。これは、非常にスケーラブルで、学習と構成が容易なソリューションです。公式サイトでチュートリアルを見ることができます。
http://quartz-scheduler.org/documentation/quartz-2.1.x/quick-start

于 2013-01-22T08:19:46.107 に答える
0

TimeUnit.MILLISECONDS.sleep(150L);

代替手段です。

この質問を見ることもできます

while待機するだけのループまたは ScheduledThreadPoolExecutorを使用することをお勧めします

于 2013-01-22T08:11:51.760 に答える