Runnable - Passage d'argument THIS
Bonjour à tous,
voici mon problème :
Code:
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);
}
});
}
} |
Dans la méthode start(), j'aimerais passé en argument au constructeur de MainWindow l'objet Engine courant.
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 :
Code:
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);
}
});
}
} |
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?
Merci d'avance!