import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Timer;
import java.util.TimerTask;
public class CronometroJava extends JFrame {
private int tempoRestante;
private Timer timer;
private JButton botaoInicio;
public CronometroJava() {
super("Cronômetro");
// Configurações iniciais
tempoRestante = 180; // 3 minutos
timer = new Timer();
timer.scheduleAtFixedRate(new AtualizaTempo(), 0, 1000);
botaoInicio = new JButton("Iniciar");
botaoInicio.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
iniciarCronometro();
}
});
// Layout da interface gráfica
setLayout(new FlowLayout());
add(botaoInicio);
// Configurações da janela
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 100);
setLocationRelativeTo(null); // Centralizar na tela
setVisible(true);
}
private void iniciarCronometro() {
botaoInicio.setEnabled(false);
timer.scheduleAtFixedRate(new AtualizaTempo(), 0, 1000);
}
private void tocarAlarme() {
JOptionPane.showMessageDialog(this, "Tempo Esgotado!", "Alarme", JOptionPane.WARNING_MESSAGE);
}
private class AtualizaTempo extends TimerTask {
@Override
public void run() {
if (tempoRestante > 0) {
tempoRestante--;
botaoInicio.setText(String.format("Tempo: %02d:%02d", tempoRestante / 60, tempoRestante % 60));
} else {
timer.cancel(); // Parar o timer
tocarAlarme();
botaoInicio.setEnabled(true);
botaoInicio.setText("Iniciar");
}
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new CronometroJava();
}
});
}
}
