Erro no temporizador

Olá pessoal

Estou estudando a classe Timer , estou tentado fazer um execício, mas está dando errado já tentei fazer de várias maneiras, já apaguei e fiz denovo, mas não funciona. O código é esse:

Essa é a interface:

package Relogio;
public interface Temporizador 
{
    void temporizador(ActionEvent event);
}

Esse é o programa:

package Relogio;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;
import javax.swing.Timer;
/**
 *
 * @author Administrador
 */
public class Relogio 
{
    
    public static void main(String[] args)
    {
        class CountDown  implements Temporizador
        {
            private int count;
            public CountDown(int initialcount)
            {
                count = initialcount;
                
            }
            
            public void temporizador(ActionEvent event)
            {
                if(count>=0)
                {
                    System.out.println(count);
                }
                if(count == 0)
                {
                    System.out.println("Decolar");
                }
            }
                    
        }
        CountDown listener = new CountDown(10);
        
        final int DELAY = 1000;
        Timer t = new Timer(DELAY, listener);
        t.start();
        
        JOptionPane.showMessageDialog(null, "SAIR?");
        System.exit(0);
    }
}

Ele está dando erro na seguinte linha:
Timer t = new Timer(DELAY, listener);
A linha da interface também está dando erro, essa linha:

void temporizador(ActionEvent event);

Já procurei mas não consigo enchergar o erro. Alguém pode me ajudar?

o construtor de Timer recebe um int e um ActionListener…

package Relogio; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import javax.swing.JOptionPane; 
import javax.swing.Timer; 

public class Relogio 
{ 
    
    public static void main(String[] args) 
    { 
        class CountDown  implements ActionListener 
        { 
            private int count; 
            public CountDown(int initialcount) 
            { 
                count = initialcount; 
                
            } 
            
            public void actionPerformed(ActionEvent event) 
            { 
                if(count>=0) 
                { 
                    System.out.println(count); 
                } 
                if(count == 0) 
                { 
                    System.out.println("Decolar"); 
                } 
                count--;
            } 
                    
        } 
        CountDown listener = new CountDown(10); 
        
        final int DELAY = 1000; 
        Timer t = new Timer(DELAY, listener); 
        t.start(); 
        
        JOptionPane.showMessageDialog(null, "SAIR?"); 
        System.exit(0); 
    } 
}

Legal cara não marca mais erro no Timer mas continua dando erro na interface, eu alterei a interface para rodar com o código que vc corrigiu, ela ficou assim:

public interface ActionListener 
{
    void actionPerformed(ActionEvent event);
}

Está dando erro na linha:

void actionPerformed(ActionEvent event);

Quando compilo a classe Relogio ele dá a seguinte mensagem de erro:

Qual é o problema com a interface?
Por que está dando erro?

a interface que estou usando ActionListener já existe…

java.awt.event.ActionListener

exclui essa sua interface…

Cara funcionou legal ,mas eu fiquei com uma dúvida, nessa linha:

final int DELAY = 1000; 
        Timer t = new Timer(DELAY, listener); 
        t.start(); 

Por exemplo na class CountDown o count inicia com 10.
Mas como o Timer reenvia a informação reduzindo o valor?
Eu sei que no método da class o count é subtraído, mas ele fica como nove porém ele continua descendo no código onde nessa linha
CountDown listener = new CountDown(10); ele retorna a 10.
Pelo que entendi a linha do Timer "Timer t = new Timer(DELAY, listener); retorna a pegar o valor do listener que é 10.

Cara estou confuso. Você pode me explicar?
Como ele conta de 10 À 0?

o metodo actionPerformed do ActionListener é executado a cada vez que o timer alcança o delay, veja que dentro desse metodo tem um count-- essa linha subtrai 1 da variavel count, assim ele vai ate 0…

Entendeu?

qualquer coisa pode mandar um email ou me add no msn…

Cara vamos ver se eu entendi, o programa chega até o timer que envia a informação para o método e o métoda trabalha como um loop conforme o delay até chegar em 0 ou no caso até eu clicar no botão sair.

Se for isso cara valeu mesmo pela força.
Eu estou precisando de um manual ou apostila que ensine legal a trabalhar com NetBeans 4.1. Se vc tiver , vc pode mandar no meu e-mail.

O e-mail é esse:

alexandremanowar@hotmail.com

Tenho espaço de 25 mb livre.

Valeu mais uma vez