IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaces Graphiques en Java Discussion :

[Strategie][GUI]Petite question de conception


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 48
    Points : 59
    Points
    59
    Par défaut [Strategie][GUI]Petite question de conception
    Bonjour à tous,

    Une fenêtre ouvre immédiatement un dialogue pour effectuer une sélection. Le résultat de cette sélection influence la construction de la fenêtre principale. J'ai donc fait ceci mais celà me semble pas très esthétique...
    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
    class MainWindow {
    	MainWindow() {
    		...
    		Dialog(this);
    	}
     
    	continuer() {}
     
    	class Dialog {
    		Dialog(MainWindow mw) {
    			...
    			mw.continuer();
    		}
    	}
    }
    [ Modéré par vedaer ]
    -> Ajout du tag dans le titre
    [ Merci de respecter les Règles du Forum ]

  2. #2
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    Si tu utilise le mecanisme d'inner class comme ca, tu n'est pas obligé d'utiliser de passer la fenetre principale en parametre du constructeur de la classe.

    Tu peux acceder a l'instance de la classe principale dans l'inner class en faisant :
    MainWindow.this

    Ainsi, ton code modifié serait :

    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
    class MainWindow {
       MainWindow() {
          ...
          new Dialog();
       }
     
       continuer() {}
     
       class Dialog {
          Dialog() {
             ...
             MainWindow.this.continuer();
          }
       }
    }
    Peut etre que ca te plait plus comme ca ;o)

    (j'ai rajouté le "new" devant "Dialog()", je pense que tu l'avais oublié ;o)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 48
    Points : 59
    Points
    59
    Par défaut
    Merci pour le MainWindow.this.continuer(), je pense que c'est plus propre. Ce qui me dérange c'est que je souhaitais trouver un mécanisme proche du JFileChooser ou assimilé.
    J'ai l'impression d'avoir fais du bidouillage, c'est surtout cet aspect qui me gène (perfectionniste!).

    Je coche donc le résolu puisqu'aucun Vade retro n'est apparu.

    Merci Fladnag j'avais oublié/ignoré ce mécanisme.

  4. #4
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    Si tu veux faire comme le JFileChooser, tu peut appeller une methode statique de ton innerclass qui gere la fenetre et attend sa fermeture.

    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
    class MainWindow {
       MainWindow() {
          ...
          Dialog.affiche();
          // code de continuer()
       }
     
       class Dialog {
          public static boolean fini; // je pense que tu doit le mettre en static... mais c'est pas grave si tu n'a qu'une instance a la fois de la classe.
     
          Dialog() {
             ...
                // qqpart, dans l'ActionListener de ton bouton OK, tu met fini=true; ou encore mieux, ajoute un gestionnaire d'evenement sur la fenetre, et dans la methode de fermeture de la fenetre (windowClosing ou qqchose comme ca) tu met fini=true;
     
          }
     
          static public void affiche() {
                fini=false;
                new Dialog();
                while(!fini);
          }
     
       }
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Petite question strategie de groupe
    Par Léponge85 dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 05/03/2009, 22h38
  2. Petite question de conception librarie.
    Par Clorish dans le forum Delphi
    Réponses: 22
    Dernier message: 24/08/2007, 08h40
  3. Réponses: 3
    Dernier message: 11/06/2006, 12h09
  4. Réponses: 24
    Dernier message: 29/08/2005, 13h33
  5. Petite question sur les performances de Postgres ...
    Par cb44 dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 13/01/2004, 13h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo