Bonjour à tous,
voici mon problème :
Dans la méthode start(), j'aimerais passé en argument au constructeur de MainWindow l'objet Engine courant.
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 public class Engine { private MainWindow MWin; public Engine() { init(); } private void init() { } public void start() { //Invoke a new MainWindow object via EDT SwingUtilities.invokeLater(new Runnable() { public void run() { MWin = new MainWindow(this); MWin.setVisible(true); } }); } }
Problème, je ne peux pas utiliser le mot-clé this, il se réfère à l'objet Runnable.
J'ai eu une idée de solution :
Mais cette solution consiste a garder dans l'objet une référence vers lui-même. Ça me semble pas logique, existe t'il un autre moyen pour passer l'objet courant Engine?
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 public class Engine { private MainWindow MWin; private Engine e; public Engine() { init(); } private void init() { e = this; } public void start() { //Invoke a new MainWindow object via EDT SwingUtilities.invokeLater(new Runnable() { public void run() { MWin = new MainWindow(e); MWin.setVisible(true); } }); } }
Merci d'avance!
Partager