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

AWT/Swing Java Discussion :

[AWT] Gestion des fenêtres


Sujet :

AWT/Swing Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 109
    Points : 63
    Points
    63
    Par défaut [AWT] Gestion des fenêtres
    Salut a tous.
    J'ai un projet pour les cours, le demineur. On doit coder avec l'AWT.

    Mon probleme est un simple:
    Je cree une interface dans un main() avec seulement les menus.
    Lors du clic sur nouvelle partie (facile), j'ai un evenement qui se declenche par l'intermediaire du listening. Dans cet evenement, j'aimerai creer mon plateau qui est un Panel a ajouter dans la frame principale. Le probleme, est que je ne sait pas comment acceder a cette frame. Donc, pour l'instant, j'en ouvre une autre (pour avoir le visuel de ce qu'il y a derriere).

    Pouvez-vous me dire comment je fait pour mettre a jour c'te Frame de m*r*e.

    Sinon, au passage, j'ai un autre petit soucis, je ferme mes fenetre avec system.exit(0). Comment faire pour n'en fermer qu'une seule a la fois (vous allez me dire que, pour le demineur, ca sert a rien. en fait, j'affiche les instructions dans une nouvelle frame et si je ne veux fermer que celle-la, j'peux pas.)

    MERCI a tous.

  2. #2
    Membre chevronné Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 232
    Points : 1 897
    Points
    1 897
    Par défaut
    Dans la frame tu crée des menus, donc lors d'un évênement souris sur le menu tu appelle une méthode qui veut par exemple ajouter un Panel à la Frame :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    private void onMouseClick()
    {
      MonPanel p = new MonPanel();
      this.add(p); // this est une référence à la Frame (dans cet exemple)
      ...
    }
    La connaissance ne sert que si elle est partagée.
    http://ms2i.net

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 109
    Points : 63
    Points
    63
    Par défaut
    Ouais, deja j'ai un peu du mal avec les this.
    Ensuite, j'ai teste betement de mettre un this.add(P) et ca ne fait rien.

    En reflechissant, le this se refere a mon ENPfacile.

    public class ENPfacile extends Plateau implements ActionListener{

    Fenetre W = new Fenetre();

    public ENPfacile()
    {}

    public void actionPerformed(ActionEvent e)
    {
    Plateau P = new Plateau();
    //Frame fr = new Interface_graphique();
    this.add(P);
    //fr.addWindowListener(W);
    }

    }
    Vu que y'a pas de frame, c'est a peu pres normal.

    J'avais teste de declarer la frame en public dans le main() pour pouvoir la voir d'ailleur mais eclipse veut pas.

  4. #4
    Membre chevronné Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 232
    Points : 1 897
    Points
    1 897
    Par défaut
    ... si Fenetre dérive de Frame.
    La connaissance ne sert que si elle est partagée.
    http://ms2i.net

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 109
    Points : 63
    Points
    63
    Par défaut
    Bon, c'est un peu le dawa.
    W extends WindowAdapter.
    C'est ce qui me permet de fermer tout quand on clic sur la croix.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 109
    Points : 63
    Points
    63
    Par défaut
    Ca, c'est ce que j'ai deja:
    public class Appli1 {
    public static void main(String args[])
    {Fenetre W = new Fenetre();
    Frame fr = new Interface_graphique();
    fr.addWindowListener(W);}
    }
    public class Interface_graphique extends Frame {
    public Interface_graphique(){
    super();
    setTitle(" Démineur ");
    MenuIG mIG = new MenuIG();
    setMenuBar(mIG);
    pack();
    setVisible(true);}
    }
    public class MenuIG extends java.awt.MenuBar {
    public MenuItem mpersonnalisée;
    public Menu mPartie;
    public ENPpersonnalisée ENPP = new ENPpersonnalisée();

    public MenuIG() {
    Menu mFichier = new Menu(" Demarrer ");
    mPartie = new Menu(" Nouvelle Partie ");
    mpersonnalisée = new MenuItem(" personnalisée ");

    mFichier.add(mPartie);
    mPartie.add(mpersonnalisée);
    mpersonnalisée.addActionListener(ENPP);
    add(mFichier);}
    }
    et enfin

    public class ENPpersonnalisée extends Plateau implements ActionListener{
    Fenetre W = new Fenetre();
    public ENPpersonnalisée()
    {}
    public void actionPerformed(ActionEvent e){
    Plateau P = new Plateau(5,5,5);
    Frame F = new Interface_graphique();
    F.add(P);
    F.addWindowListener(W);}
    }
    Donc le probleme, c'est que le F (dans ENPpersonnalisée) et le fr (dans Aplli1) devraient etre les memes.

    La, ca devrait etre comprehensible. J'aurais du le faire des le debut.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 109
    Points : 63
    Points
    63
    Par défaut resolu
    Bon, finalement, j'ai changé totalement de maniere de faire.
    Le listener de mon clic sur un menu est la frame principale qui implements ActionListener. Ainsi, mon actionPerformed() et defini dans la frame et il n'est plus tres difficile de lui ajouter mon plateau.
    De meme pour fermer la fenetre, on utilise dipose().

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

Discussions similaires

  1. Gestion des fenêtre
    Par diFaenza dans le forum Mandriva / Mageia
    Réponses: 2
    Dernier message: 15/08/2007, 09h30
  2. Gestion des fenêtres avec les menus
    Par Death83 dans le forum C++Builder
    Réponses: 23
    Dernier message: 15/12/2006, 10h22
  3. Gestion des fenêtres
    Par Galaad dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/07/2006, 15h29
  4. [DELPHI6] et gestion des fenêtres windows
    Par Desraux dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 27/03/2006, 16h47

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