2012-03-12 2 views
0

J'essaie de lancer un petit exemple que j'ai trouvé à partir d'ici http://docs.oracle.com/javase/7/docs/api/javax/swing/Timer.html. Cependant, je reçois Type mismatch: cannot convert from void to Timer sur la minuterie = nouvelle ligne Timer ...... J'espérais que quelqu'un pourrait m'aider.Problème de compilation minuterie

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

Merci

mon code;

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

S'il vous plaît montrer le code complet * * vous essayez. Il pourrait y avoir un certain nombre de raisons pour lesquelles cela échoue, mais elles nécessitent plus de contexte. –

Répondre

3

Votre code ne contient pas de ligne timer = .... Je crois que vous avez essayé d'écrire:

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

Ce ne peut être calculée parce que la méthode start() est vide.

Juste séparer cette ligne en 2:

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

EDIT, oh, mon hypothèse est correcte. Je n'ai juste pas vu la deuxième ligne où vous utilisez la minuterie dans le second fragment de votre code.

0

Ajouter swing minuterie

import javax.swing.Timer 

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

      }  
     }; 

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