Starter34
Messages postés5Date d'inscriptionjeudi 16 avril 2009StatutMembreDernière intervention23 juillet 2010
-
23 juil. 2010 à 15:28
Starter34
Messages postés5Date d'inscriptionjeudi 16 avril 2009StatutMembreDernière intervention23 juillet 2010
-
23 juil. 2010 à 16:19
Bonjour,
Je cherche un avis sur une situation que je ne comprends pas... En synthèse Eclipse me demande de modifier une méthode en static lorsque que je décide de la lancer depuis le main plutôt que depuis son constructeur
les détails:
J'ai une Visual Class héritant de JFrame qui contient le main de mon appli. Depuis ce dernier, un thread (runnable) instancie cette même JFrame appellant son constructeur...
ça donne:
public class GameSwing extends JFrame {
...
// le main...
...
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
GameSwing thisClass = new GameSwing();
thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
thisClass.setVisible(true);
}
});
...
//le constructeur
...
public GameSwing() {
super();
initialize();
}
...
La fonction initialize() monte le conteneur et spécifie les caractéristques de la JFrame.
...
Depuis cette classe "GameSwing" je veux aussi instancier des objet d'autres classe Swing. Pour cela je créé la fonction "launchWindows()"
private void launchWindows() {
// on instancie les autres classes graphiques
///-------------------------------------------
/** celle destinée à récupere les donnés des participants*/
onePlayerDescription = new PlayerDescription(5);
onePlayerDescription.setLocationRelativeTo(null);
onePlayerDescription.setVisible(true);
/** la fenêtre destinée à saisir les données de la partie */
oneGameInputData = new GameInputData();
oneGameInputData.setLocationRelativeTo(null);
oneGameInputData.setVisible(true);
/** la fenêtre permettant d'imprimer les support de la partie */
oneMaterialPreparation = new MaterialPreparation();
oneMaterialPreparation.setVisible(true);
oneMaterialPreparation.setLocationRelativeTo(null);
}
Mon problem:
Si j'appelle cette fonction "launchWindows" depuis mon constructeur (aprés "initialize()") ben ça marche bien... par contre si je la lance depuis mon main (ce qui me semblerai plus logique) comme ça:
public static void main(String[] args) {
launchWindows();
SwingUtilities.invokeLater(new Runnable() {
public void run() {
GameSwing thisClass = new GameSwing();
thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
thisClass.setVisible(true);
}
});
}
Et bien l'IDE Eclipse me suggère de changer le type de la fonction "launchWindows" de public à static.