Fiz um cronômetro e coloquei ele pra ser exibido como um botão, o código está aí:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class Cronometro extends JFrame
{
//cria o botão que servirá para indicar as horas
private JButton campo;
Timer tempo;
int min;
int seg;
//construtor básico, onde inicia o Timer
public Cronometro()
{
super("Cronômetro");
campo = new JButton("Se quiser parar, clique aqui.");
add(campo);
min = 10;
seg = 0;
//lança o evento
tempo = new Timer(20,new TimerHandler());
tempo.start();
}
//classe interna pra captar o evento
private class TimerHandler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String msg = String.format("%02d:%02d",min,seg);
//reedita o botão pra exibir
campo.setVisible(false);
campo = new JButton(msg);
campo.setVisible(true);
add(campo);
ButtonHandler handler = new ButtonHandler();
campo.addActionListener(handler);
if(seg == 0)
{
min--;
seg = 59;
}
else
seg--;
//quando acabar o contador, o Timer irá finalizar
if(min == -1)
{
tempo.stop();
JOptionPane.showMessageDialog(null,"Fim");
System.exit(1);
}
}
}
class ButtonHandler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
tempo.stop();
JOptionPane.showMessageDialog(null,"Fim");
System.exit(1);
}
}
}
Eu gostaria de saber como usar outros componentes GUI com a mesma função, quero dizer, sem ser um botão, queria colocar uma figura(de um relógio,claro) e o tempo passando nele, como em uma animação.
Me dêem algumas idéias por favor!