Bonjour tout le monde,
J'ai un soucis de rafraîchissement sur un JTextArea.
J'ai tout réunis sur une classe pour faciliter l'aide.
Voyez plutôt...Au fait je souhaite qu'il affiche le décompte dans la JTextArea.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class FenetreCompteur extends JFrame implements ActionListener { public JLabel label; public JTextArea texte; public JButton bouton; public Font police; public FenetreCompteur() { setLayout(new GridLayout(3, 0)); this.label = new JLabel(" Compteur"); this.police = new Font("Courier", Font.BOLD, 20); this.texte = new JTextArea(); this.texte.setFont(police); this.texte.setEditable(false); this.bouton = new JButton("GO"); this.bouton.addActionListener(this); getContentPane().add(this.label, BorderLayout.NORTH); getContentPane().add(this.texte, BorderLayout.SOUTH); getContentPane().add(this.bouton, BorderLayout.SOUTH); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(this); setSize(200, 150); } public static void main(String[] args) { FenetreCompteur fenetre = new FenetreCompteur(); fenetre.pack(); fenetre.setVisible(true); /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// //Si j'appele la méthode ici, ça fonctionne, mais je ne veux pas la chose comme ça, //je le souhaite vraiment lorsqu'on appuie sur le bouton... //fenetre.rafraichirJTextArea(); /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// } public void rafraichirJTextArea() { this.texte.repaint(); //Petit compte à rebours for(int i = 10; i >= 0; i --) { String compteur = Integer.toString(i); try { Thread.sleep(500); this.texte.setText(" " + compteur); this.texte.getText(); System.out.println(this.texte.getText()); // juste pour voir } catch(Exception e) { System.err.println("Erreur : " + e); } } } public void actionPerformed(ActionEvent e) { // Le problème est que le bouton garde le "focus" jusqu'à la fin du décompte if(e.getSource().equals(this.bouton)) { this.rafraichirJTextArea(); } } }
Dans la main (en commentaire), en appelant la méthode rafraichirJTextArea(), ça joue (si vous testez vous verrez), mais si je fais appel de la méthode avec le bouton, rien à faire !
Quelqu'un a-t-il la gentillesse de m'aider ?
Par avance merci à tous !
Cdt, Antoniom.
Partager