Problema con timer.
Publicado por jose (73 intervenciones) el 21/01/2022 19:17:32
Hola,
A ver si alguien me puede informar. Estoy haciendo un programa con un timer y necesito que se pare cuando pulse un botón o cuando cambié un combobox.
Lo he intentado de varias formas y no hay manera. El tema es que en este ActionListener, timer.cancel(); sólo hace caso cuando el timer llega a 0, pero no cuando pulso otro botón. Para parar.
Adjunto el archivo por si alguien me lo puede aclarar. También me gustaría que si cambio el JCombobox también se detuviese el timer, no sé cómo hacerlo.
La otra es que si le doy al botón "Detener " que contiene lo siguiente
el JLabel time si cambia. pero el timer sigue corriendo.
A ver si alguien me puede informar. Estoy haciendo un programa con un timer y necesito que se pare cuando pulse un botón o cuando cambié un combobox.
Lo he intentado de varias formas y no hay manera. El tema es que en este ActionListener, timer.cancel(); sólo hace caso cuando el timer llega a 0, pero no cuando pulso otro botón. Para parar.
Adjunto el archivo por si alguien me lo puede aclarar. También me gustaría que si cambio el JCombobox también se detuviese el timer, no sé cómo hacerlo.
La otra es que si le doy al botón "Detener " que contiene lo siguiente
1
2
timer.cancel();
time.setText("Fin");
el JLabel time si cambia. pero el timer sigue corriendo.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
private class actuarTimer implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
PAFText = PAF.getText();
Timer timer = new Timer();
time.setForeground(new Color(114, 183, 102));
if (e.getSource().equals(empezar)) {
timer.scheduleAtFixedRate(new TimerTask() {
int i = Integer.parseInt(time.getText());
public void run() {
String minutesStr = String.valueOf(i);
time.setText(minutesStr);
i--;
if(i<=5) {
time.setForeground(Color.RED);
}
if (i < 0 ) {
timer.cancel();
time.setText("Fin");
}
}
}, 0, 1000);
} else {
time.setText("Fin");
timer.cancel();
//System.exit(0);
}
}
- timerPAF.zip(1,5 KB)
Valora esta pregunta


0