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 :

Communication entre JDialog et JFrame


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 146
    Par défaut Communication entre JDialog et JFrame
    salut,
    J'ai une JFrame qui contient une JPanel et qui a son tour contient une JLabel et un bouton.
    Le bouton1 a pour action d'ouvrir une JDialog qui contient une contient un bouton2.
    J'aimerais que lorsque je clique sur le bouton2, j'arrive a modifier le JLabel.

    Comment faire ??
    voici un peu de mon code :

    Code de la fenetre
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    package test;
     
    import java.awt.BorderLayout;
    import java.awt.Panel;
     
    import javax.swing.JButton;
    import javax.swing.JFrame;
     
    public class Fenetre extends JFrame{
     
     
    	public Fenetre()
    	{
    		this.setTitle("Test Fenetre");
    		this.setName("Fenetre de test");
    		this.setSize(600,600);
    		monPanel p = new monPanel();
    		p.setName("Panel1");
    		JButton j = new JButton();
    		j.setText("Bouton1");
    		j.addActionListener(new java.awt.event.ActionListener(){
     
    			public void  actionPerformed(java.awt.event.ActionEvent e){
    				fonction();
    			}
     
     
    		});
     
    		p.add(BorderLayout.CENTER,j);
     
    		this.add(BorderLayout.CENTER,p);
    	}
     
    	private void fonction() {
     
    		Dialog d = new Dialog(this);
    		d.setSize(200,200);
    		d.setVisible(true);
     
    	}
     
    	public static void main(String []arg)
    	{
    		Fenetre f = new Fenetre();
    		f.setVisible(true);
    	}
     
    }
    Voici le code du Panel
    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
     
    package test;
     
    import javax.swing.JPanel;
     
    public class monPanel extends JPanel{
     
    	public monPanel()
    	{
    		this.setName("Panel1");
     
    	}
     
     
    }
    Et enfin le code du JDialog :

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    package test;
     
    import java.awt.BorderLayout;
    import java.awt.Component;
    import java.awt.Panel;
     
    import javax.swing.JButton;
    import javax.swing.JDialog;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.plaf.OptionPaneUI;
     
    import sun.net.dns.ResolverConfiguration.Options;
     
    public class Dialog  extends JDialog{
     
    	Fenetre f ;
     
    	public Dialog(Fenetre f)
    	{
    		this.f = f;
    		this.setSize(200, 200);
    		this.add(BorderLayout.CENTER,new JLabel(f.getName()));
    		JButton j = new JButton();
    		j.addActionListener(new java.awt.event.ActionListener (){
    			public void actionPerformed(java.awt.event.ActionEvent e)
    			{
    				fonction();
    			}
    		});
    		this.add(BorderLayout.CENTER,j);
    		System.out.println(f.getName());
     
     
    	}
     
    	public void fonction()
    	{
     
     
    	}
     
     
    }
    Aider moi svp...
    Merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 207
    Par défaut
    est-ce que ta fenêtre de dialogue doit se fermer apprès avoir appuyé sur le bouton?

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 146
    Par défaut
    Oui j'aimerais bien que ca se ferme en modifiant le label de la JFrame aussi

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 207
    Par défaut
    premièrement, il faudrait mettre ta fenêtre de type "Modal" pour ne pas pouvoir aller d'une fenêtre à l'autre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    //mettre en modal
    f.setModal(true);
    //Afficher la fenêtre
    f.show();
    //Ta procédure pour modifier ton label
    ....
    Si dans ta fenêtre de dialogue tu as une liste de choix et que tu veux pouvoir faire égaler ton label à l'un des choix tu peux toujours mettre un variable de type globale qui correspondrait au choix fait par l'usager. Lorsque tu clique sur le bouton il suffit simplement de faire un hide à la fenêtre.

    Quand ta fenêtre de dialogue se fermera, c'est là que ta procédure de modification pour ton label s'exécutera. Il te faudra simplement aller chercher la valeure de ta variable globale qui se trouve dans ta fenêtre de dialogue.

    J'espère ne pas avoir été trop vague....

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 146
    Par défaut
    Tu veut dire koi par global ??
    et au niveau de quelle classe elle sera déclaré ???

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 207
    Par défaut
    déclare la dans ton JDialogue

    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 Dialog(Fenetre f)
    	{
    		this.f = f;
    		this.setSize(200, 200);
    		this.add(BorderLayout.CENTER,new JLabel(f.getName()));
    		JButton j = new JButton();
    		j.addActionListener(new java.awt.event.ActionListener (){
    			public void actionPerformed(java.awt.event.ActionEvent e)
    			{
    				fonction();
    			}
    		});
    		this.add(BorderLayout.CENTER,j);
    		System.out.println(f.getName());
    //Déclaration de ta variable globale
    		Public String valeur = "";
     
    	}
    Il te sufira simplement à partir de ta fenêtre principale de prendre la valeure de la manière suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Label.setText(f.valeur);

Discussions similaires

  1. Communication entre JFrame et JDialog par Listeners
    Par bomehc dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 24/01/2012, 18h59
  2. Communication entre un Thread et une JFrame
    Par max0r1311 dans le forum Agents de placement/Fenêtres
    Réponses: 6
    Dernier message: 23/03/2007, 20h50
  3. [Jdialog] Question sur communication entre fenetre
    Par Oreste dans le forum Agents de placement/Fenêtres
    Réponses: 7
    Dernier message: 17/03/2005, 11h23
  4. Réponses: 5
    Dernier message: 25/03/2003, 19h43
  5. communication entre programmes
    Par jérôme dans le forum C
    Réponses: 12
    Dernier message: 16/04/2002, 08h05

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