2012-03-12 22 views
0

私はここから見つけた小さな例を実行しようとしていますhttp://docs.oracle.com/javase/7/docs/api/javax/swing/Timer.html。しかし、私はType mismatch: cannot convert from void to Timerをtimer = new Timer .....という行に付けます。私は誰かが私を助けることを望んでいた。タイマのコンパイルの問題

int delay = 1000; //milliseconds 
    ActionListener taskPerformer = new ActionListener() { 
     public void actionPerformed(ActionEvent evt) { 
      //...Perform a task... 
     } 
    }; 
    new Timer(delay, taskPerformer).start(); 

あなた

私のコードをありがとうございました。

import java.awt.Container; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

import javax.swing.JFrame; 
import javax.swing.Timer; 


public class MyTimerTest 
{ 
    private JFrame frame = new JFrame(); 
    Container contentPane = frame.getContentPane(); 
    Timer timer; 
    int delay = 1000; //a second 

    public MyTimerTest() 
    { 
    } 


    public void runTimer() 
    { 
     ActionListener taskPerformer = new ActionListener() 
     { 
      @Override 
      public void actionPerformed(ActionEvent arg0) { 

      }  
     }; 

     timer = new Timer(delay, taskPerformer).start(); 
    } 
    /** 
    * @param args 
    */ 
    public static void main(String[] args) 
    { 

    } 

} 
+0

スイングます。これが失敗する原因はいくつでもありますが、より多くの状況が必要です。 –

答えて

3

コードには、timer = ...という行は含まれていません。 は、私はあなたが書くしようとしたと信じて:

Timer timer = new Timer(delay, taskPerformer).start();

方法start()が無効であるため、これをコンパイルすることはできません。

わずか2には、この行を区切る:

Timer timer = new Timer(delay, taskPerformer); 
timer.start(); 

EDITを、ああ、私の仮定が正しいです。私はちょうどあなたのコードの2番目の断片でタイマーを使用している2番目の行を見ていない。

0

は、あなたがしようとしている*完全な*コードを表示してくださいタイマー

import javax.swing.Timer 

    public void runTimer() 
    { 
     ActionListener taskPerformer = new ActionListener() 
     { 
      @Override 
      public void actionPerformed(ActionEvent arg0) { 

      }  
     }; 

     timer = new Timer(1000, taskPerformer).start(); 
    }