4

インターフェイスの使い方を学び始めたばかりで、特定の単語 (この場合は「ハウディ」) を 10 秒ごとに出力する方法を見つけようとしていました。TimerTaskおよびクラスを使用してTimer、タスクを 10 秒ごとに実行するようにスケジュールしましたが、正しい方法で実行していますか?

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


public class Howdy2 {

    class PrintHowdy extends TimerTask {
        public void run() {
           System.out.println("Howdy!"); 
        }
     }

     public static void main(String[] args){
     Timer timer = new Timer();
     timer.schedule(new PrintHowdy(), 10000);

     }


}
4

3 に答える 3

4

このようなものはトリックを行う必要があり、Timerまたはを使用する必要はありませんTimerTask:

public class Test
{
    public static void main(String... args)
    {
        Thread thread = new Thread()
        {

            public void run()
            {
                while (true){
                    System.out.println("Hello World");
                    try
                    {
                        Thread.sleep(1000); // 1 second
                    } catch (Exception e)
                    {
                        e.printStackTrace();
                    }
                }
            }
        };
        thread.start();
    }
}
于 2013-03-15T17:54:30.840 に答える
0

この種のソリューションでは、特定の条件でフローを停止するケースも考慮する必要があります。

    public class TestExecution02 implements Runnable {

        public boolean doLoop = true;

        public void run() {
                //------
            while(doLoop) {
                try {
                    Thread.sleep(10000); // 10 second
                } catch (InterruptedException e) {
                    e.printStackTrace();
                } 
                // do your job until it is closed
            }

            System.out.println("Thread closed !");
        }


        public static void main(String[] args) {

            TestExecution02 testExecution = new TestExecution02();
            Thread myThread = new Thread (testExecution);
            myThread.start();

            // do something.....
            testExecution.doLoop = false;

        }
    }
于 2013-03-16T12:20:06.653 に答える
0

このようなもの、

 public static void main(String[] args){
   while(true) {
new PrintHowdy().run();
Thread.sleep(10000)
}

     }
于 2013-03-15T17:49:34.797 に答える