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

Agents de placement/Fenêtres Java Discussion :

Communiquer à une Jframe


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Communiquer à une Jframe
    Bonjour, je fais un petit projet pour m’entraîner en java et j'ai un petit souci, qui ne doit pas être bien compliquer mais je bloque.
    Je dispose d'une jFrame avec un jpanel dedans où je dispose de 3 boutons, je voudrais que lorsque j'appuie sur un de ces boutons, j'active une méthode de ma frame. J'ai essayer avec un observer mais je n'arrive pas à le faire marcher .

    Voici le code (j'ai juste mis l'essentiel) :

    Ma classe Frame :

    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
    25
    26
    27
    28
    29
    30
    31
    public class Fenetre extends JFrame {
     
    	private TableRonde tabronde = new TableRonde();
    	private boolean finie = false;
     
    	// Création d'une fenetre du jeu
    	public Fenetre () {
     
    		this.setTitle("Table Ronde");
    		this.setSize(800, 600);
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
    		Menu panel = new Menu();
    		panel.setLayout(null);		
     
    		this.setContentPane(panel);
     
    		this.setLocationRelativeTo(null);
    		this.setVisible(true);
     
     
    	}
     
    	// méthode qui créer le jeu dans la frame 
    	public void jeu () {
     
    		this.setContentPane(new Dessinjeu(this.tabronde));
    		this.invalidate();
    		this.validate();
    		this.repaint();
    	}
    Et le code de mon JPanel menu (je n'ai mis que le code d'un bouton) :

    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
    public class Menu extends JPanel {
     
    	// Contructeur de base
     
    	// On créer 3 boutons qui renvoie sur différentes option du jeu
    	public Menu () {
     
    		JButton b1 = new JButton("Jouez");
    		b1.addActionListener(new Actionjouer()); // ->>>>>>>
    		this.add(b1);
          }
     
         public class Actionjouer implements ActionListener {
     
    		public void actionPerformed(ActionEvent e) {
    			// -> je souhaiterais appeler la méthode jouer de ma JFrame...
    		}
     
    	}

    Voila donc en gros je créé une fenêtre, je créer mon JPanel menu. Quand j'appui sur le bouton je souhaite créer un nouveau JPanel (new Dessinjeu()), mais je ne sait pas comment accéder à ma jframe de ma classe menu...

    Voila si quelqu'un peut m'aider, ce serait vraiment coul !

    Cordialement,
    Tititrois

  2. #2
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Points : 1 493
    Points
    1 493
    Par défaut
    Bonjour,
    Tu peux regarder du côté "classes internes". Une idée, tu crées ta classe qui étend JPanel à l'interieur de ta JFrame. Dans ce cas tu pourras facilement appeler une méthode créée dans ta JFrame à partir de ta classe (JPanel).
    A+
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

  3. #3
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Autres voies :

    • passer la frame en argument : imagines que tu remplaces ta ligne Menu panel = new Menu(); par Menu panel = new Menu(this); et tu modifies ton constructeur de Menu, en public Menu(JFrame frame) : ainsi, tu as la référence de la frame dans ton composant. Tu devrais pouvoir maintenant voir comment tu peux rendre cette référence disponible dans les méthodes actionPerformed des écouteurs des boutons...
    • Utiliser un modèle évènementiel, qui permette à la JFrame de s'enregistrer comme écouteur auprès de l'instance de classe Menu, ces écouteurs étant délégués à l'écoute des évenements des boutons qui s'y trouvent. Un tout petit peu plus complexe que la première solution, mais qui, au final, rend ta classe Menu indépendante de la JFrame (ce qui veut dire que tu pourrais par exemple la mettre dans un autre JPanel, qui pourrait écouter lui-même ces évènements, au besoin.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

Discussions similaires

  1. détruire une jframe
    Par smash31 dans le forum Agents de placement/Fenêtres
    Réponses: 8
    Dernier message: 25/06/2004, 19h56
  2. Reduire une JFrame
    Par MrEddy dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 16/06/2004, 14h36
  3. Interdire de redimensionner une JFrame
    Par java_math dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 06/06/2004, 13h59
  4. Maximiser une JFrame
    Par harold63 dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 02/06/2004, 13h19
  5. Faire une JFrame avec LookAndFeel
    Par aburner dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 03/12/2003, 08h54

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