Bonjour,
Je realise une GUI avec Java (et Eclipse Visual Editor).
Cette GUI lance, lors d'un action, un thread classique.
Je souhaiterai que ce thread puisse modifier un objet de la GUI, par exemple un JTextField, pour par exemple afficher l'avancement du thread dans la GUI.
La partie lancement de thread et GUI est ok, mais je n'arrive pas a faire communiquer mon thread avec la GUI.
Voici mon code:
Le probleme est que Runner (qui est un classe classique qui fait un traitement long mais classique) ne connait aucun objet de la GUI.
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 // GUI class extends JFrame { ... JButton button; JTextField textField; ... JTextField getTextField() {...} ... JButton getButton() { ... public actionListener() { thread_software = new Thread() { public void run() { new Runner(parameter); } }; thread_software.start(); }
Comment faire pour Runner interagisse avec le textfield, avec comme contrainte:
- ne pas passer le textfield en parametre du Runner
- ne pas mettre le text field ou la JFrame static ou final
Il semble que ca soit la un probleme de Conception Objet et non pas un probleme purement Java, autrement dit il a relation d'Agregation entre la GUI et le Thread...
Merci,
Dazdh
Partager