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 :

Mise à jour Label


Sujet :

Interfaces Graphiques en Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Mise à jour Label
    Bonjour,

    J'ai actuellement une liste avec plusieurs noms de personnes.
    Lorsque je clique sur une personne, cela m'affiche(sur la même page) des informations (nom,prénom...).
    Jusque là tout va bien.
    Cependant lorsque je re-clique sur un autre nom, mon Label ne se change pas.
    Lorsque je fait un System.out.println(mon_label) j'ai bien récupéré le nom mais aucun affichage.

    Voici un petit bou de code pour mieux comprendre.

    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
     
     
    // ------------------------------------ fichier : Asso.java ------------------------------------
     
    public boolean Asso2(String uneAction)
    	{		
    		Label prenom; // Label d'affichage
    		Label Rprenom; // Label de réponses
    		mabase.ajouterInfo(unId,mabase); // On ajoute les infos avec unId, la base
     
    		prenom = new Label("Prenom : ");
    		Rprenom = new Label();
    		Rprenom.setText(mabase.getPrenom());
    		System.out.println(Rprenom);
             }
     
    // ------------------------------------ fichier : mysqldb.java ------------------------------------
     
    private : unPrenom;
     
    public void ajouterInfo(int unId,mysqldbChien base)
    	{
    		String req = "Select * from Personnes where id = '" + unId + "'";
     
    		if(base.setrset(req)==true) // Si la requete a fonctionnée
    		{
    			ResultSet rs = base.getrset(); // Récupération de rset dans rs
     
    			try // On essaye
    			{ 
    				rs.next(); // On met au premier résultat
     
    				unPrenom = rs.getString(2);
     
    			}
    			catch(SQLException ex) // Si ca marche pas
    			{
    				System.out.println("Probleme parcours rs - Chiens");
    			}
    		}
    		else // Sinon la requete à échoué
    		{
    			System.out.println("Echec de requête");
    		}
    	}
     
    public String getPrenom()
    	{
    		return unPrenom;
    	}
    Avez vous une petite réponse pour m'aider svp..

    Merci d'avance

    Napalm

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 107
    Points : 120
    Points
    120
    Par défaut
    ce serais mieux de le mettre en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private String unPrenom;

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Effectivement Rhadamenthys, c'était juste pour la forme pardon, mais dans mon code j'ai bien mis private String unPrenom.

    Mais c'est une bonne remarque mais cela ne résous pas mon problème

    Une autre idée ? Ou besoin de plus de code ?

    Merci

    Napalm

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 107
    Points : 120
    Points
    120
    Par défaut
    Qui appelle Asso2 ? Car apparament il n'y a aucun erreur visible.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 107
    Points : 120
    Points
    120
    Par défaut
    Il manquerait pas un

    monComposant.add(Rprenom);

    ????

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Mon fichier Asso.java

    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
     
    public class Asso extends Frame
    {
    	// ---------------- Debut variables privées --------------
     
    	private mysqldbChien mabase; // Objet mabase de type mysqldb
    	private Panel panCenter,panHaut,panGauche,panBas; // Objet panCenter de type Panel
    	private evt evt; // Objet evtP de type evtpersonnes(faisant ref au fichier)
    	private List resultat; // Objet resultat de type List
    	private String boutton = null;
    	private ArrayList<Personnes> colPers;
    	private ArrayList<Chien> colChiens;
    	//private fenetre2 fenetre2;
     
    	// ---------------- Fin variables privées --------------
     
    	// ---------------- Debut constructeur --------------
     
    	public Asso()
    	{
    		mabase = new mysqldbChien(); // Création d'une connexion
     
    		if(mabase.getconn()==null) // Si la connexion ne se fait pas
    		{
    			System.out.println("Echec de connexion");
    		}
    		else // Sinon la connexion est bonne
    		{
    			System.out.println("Connexion établie");
     
    		// ---------------- Debut création de l'interface graphique --------------
     
    			// ---------- Debut création des variables ---------- 
     
    				panHaut = new Panel(); // Nouveau Panel panHaut
    				panGauche = new Panel(); // Nouveau Panel panGauche
    				panCenter = new Panel(); // Nouveau Panel panCenter
     
    				Button bPersonnes = new Button("Personnes"); // Nouveau Boutton bPersonnes
    				Button bChiens = new Button("Chiens"); // Nouveau Boutton bChiens
    				evt = new evt(this,mabase); // Nouveau evtpersonnes de l'Asso(this)
     
    			// ---------- Fin création des variables  ---------- 
     
    			// ---------- Debut création de la fenetre  ---------- 
     
    				setTitle("Application Association"); // Nouvelle fenetre	
    				setSize(800,600); // Taille 700,400
    				setLayout(new BorderLayout()); // Caracterise la fenetre selon des bords. NORTH/EAST/WEST/SOUTH/CENTER
    				panHaut.setLayout(new FlowLayout()); // Caracterise le panel de type Flow
    				panGauche.setLayout(new GridLayout(10,1)); // Caracterise le panel de type Tableau (lignes,colonnes)
    				panCenter.setLayout(new FlowLayout()); // Caracterise panCenter selon des bords. NORTH/EAST/WEST/SOUTH/CENTER
    				panHaut.add(new Label("Bienvenue")); // Création d'un Label dans panHaut
    				resultat=new List(4); // Création d'un objet List dans resultat
     
    			// ---------- Fin création de la fenetre  ----------	
     
    			// ---------- Debut création des écouteurs  ----------
     
    				addWindowListener(new evtfenetcours()); // Ajoute un écouteur sur la fenetre en cours
    				bPersonnes.addActionListener(new evt(this,mabase)); // Ajoute un écouteur sur le bouton personne
    				bChiens.addActionListener(new evt(this,mabase)); // Ajoute un écouteur sur le bouton chien
    				resultat.addActionListener(new evt(this,mabase)); // Ajoute un écouteur sur le résultat
     
    			// ---------- Fin création des écouteurs  ----------	
     
    			// ---------- Debut ajout des composants précédents  ----------
     
    				panGauche.add(bPersonnes); // Ajout du bouton bPersonnes sur panGauche
    				panGauche.add(bChiens); // Ajout du bouton bChiens sur panGauche
    				panCenter.add(resultat); // Ajout du resultat sur panCenter
     
    				add("Center",panCenter); // Ajout du panCenter sur la fenetre option "Center"
    				add("West",panGauche); // Ajout du panGauche sur la fenetre option "West"
    				add("North",panHaut); // Ajout du panHaut sur la fenetre option "North"
    				//add("South",new Panel());
    				//add("East",new Panel());
    				colPers = new ArrayList<Personnes>();
    				setVisible(true); // Rend visible la fenetre
     
    		// ---------------- Fin création de l'interface graphique --------------
    		}
    	}
     
    public boolean Asso2(String uneAction)
    	{		
    		Label prenom		
    		Label Rprenom;
     
    		String[] elListe = uneAction.split("-"); // Découpe l'élément de la liste de type : 1-test
    		int unId = Integer.parseInt(elListe[0]); // On convertit le String elListe[0] qui correspond au numéro en int
    		mabase.ajouterInfo(unId,mabase); // On ajoute les infos avec unId, la base
     
     
    		prenom = new Label("Prenom : ");
    		Rprenom = new Label();
    		Rprenom.setText("");
    		Rprenom.setText(mabase.getPrenom());
    		System.out.println(Rprenom);
     
    		panBas = new Panel();
    		panBas.setLayout(new GridLayout(8,2));
     
    		panBas.add(prenom);
    		panBas.add(Rprenom);		
     
    		this.add("South",panBas);
     
    		setVisible(true);
     
    		return true;
    	}
    Biensur j'ai d'autres champs que prenom mais j'ai enlevé

    Ensuite j'ai le fichier mysqldbchien.java

    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
     
     
    public class mysqldbChien extends mysqldb
    {
    	private String unNom,unPrenom;
     
     
    	public mysqldbChien()
    	{
    		super("Association","login","mdp"); 
    	}
     
    public void afficherPersonnes(Asso monAsso,mysqldbChien base, ActionEvent unEvt) // Permet d'afficher les personnes dans la liste déroulante
    	{
    		// Debut variables locales
     
    		String resu;
    		String req;
    		resu = null;
    		base = monAsso.getbase();
    		ActionEvent evt;
    		evt = unEvt;
     
    		// Fin variables locales
     
     
     
    		if(evt.getActionCommand().equals("Personnes")) // Si l'utilisateur a cliqué sur "Personnes"
    		{
    			monAsso.getResultat().removeAll(); // Suppressions de toutes données dans resultat
    			req = "SELECT * FROM Personnes;"; // Requete
    			System.out.println("Personnes !");
     
    			if(base.setrset(req)==true) // Si la requete a fonctionnée
    			{
    				ResultSet rs = base.getrset(); // Récupération de rset dans rs
    				try // On essaye
    				{ 
    					while(rs.next()) // Tant qu'il y a un suivant dans le resultat rs
    					{
    						resu = rs.getString(1);					
    						resu = resu+'-'+rs.getString(2); // Concaténation de l'id+prenom
    						monAsso.ajouterPersCol(resu); // Ajoute le resultat au panel
    					}
    					monAsso.setBoutton("Personnes");
    				}
    				catch(SQLException ex) // Si ca marche pas
    				{
    					System.out.println("Probleme parcours rs - Personnes");
    				}
    			}
    			else // Sinon la requete à échoué
    			{
    				System.out.println("Echec de requête");
    			}
    		}
    		else if(evt.getActionCommand().equals("Chiens")) // Sinon si l'utilisateur a cliqué sur "Chiens"
    		{
    			monAsso.getResultat().removeAll(); // Suppressions de toutes données dans resultat
    			req = "SELECT * FROM Chiens;";
    			System.out.println("Chiens !");
     
    			if(base.setrset(req)==true) // Si la requete a fonctionnée
    			{
    				ResultSet rs = base.getrset(); // Récupération de rset dans rs
    				try // On essaye
    				{ 
    					while(rs.next()) // Tant qu'il y a un suivant dans le resultat rs
    					{
    						resu = rs.getString(1);					
    						resu = resu+"-"+rs.getString(2); // Concaténation de l'id+prenom
    						monAsso.ajouterChiensCol(resu); // Ajoute le resultat au panel
    					}
    					monAsso.setBoutton("Chiens");
    				}
    				catch(SQLException ex) // Si ca marche pas
    				{
    					System.out.println("Probleme parcours rs - Chiens");
    				}
    			}
    			else // Sinon la requete à échoué
    			{
    				System.out.println("Echec de requête");
    			}
    		}
    		else 
    		{
    			monAsso.Asso2(evt.getActionCommand());
     
    			System.out.println("salut");
    		}
    	}
     
    	public void ajouterInfo(int unId,mysqldbChien base)
    	{
    		String req = "Select * from Personnes where id = '" + unId + "'";
     
    		if(base.setrset(req)==true) // Si la requete a fonctionnée
    		{
    			ResultSet rs = base.getrset(); // Récupération de rset dans rs
     
    			try // On essaye
    			{ 
    				rs.next(); // On met au premier résultat
     
    				unPrenom = rs.getString(2);
    				unNom = rs.getString(3);
     
    			}
    			catch(SQLException ex) // Si ca marche pas
    			{
    				System.out.println("Probleme parcours rs - Chiens");
    			}
    		}
    		else // Sinon la requete à échoué
    		{
    			System.out.println("Echec de requête");
    		}
    	}
     
    public String getNom()
    	{
    		return unNom;
    	}
     
    	public String getPrenom()
    	{
    		return unPrenom;
    	}
    Et le fichier evt.java

    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
     
     
    public class evt implements ActionListener
    {
    	// ---------------- Debut variables privées --------------
     
    		private Asso monAsso;
    		private mysqldbChien base;
     
    	// ---------------- Fin variables privées --------------
     
    	// ---------------- Debut constructeur --------------
     
    	public evt(Asso asso,mysqldbChien uneBase)
    	{
    		monAsso = asso;
    		base = uneBase;
    	}
     
    	// ---------------- Fin constructeur --------------
     
    	public void actionPerformed(ActionEvent evt)
    	{
    		base.afficherPersonnes(monAsso,base,evt);		
    	}
     
    }
    Voila là je pense que tout y est.

    Je pense que j'ai des erreurs (forcement ca marche pas ^^) mais je vois pas vraiment ou...

    Merci de ton aide Rhadamenthys

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 107
    Points : 120
    Points
    120
    Par défaut
    Alors oui la solution à ton problème est dans le panel que tu nomme panBas.

    La première fois tu le créer il n'y a encore rien dans la partie "Sud" de ton IHM donc ca fonctionne lorsque tu ajoute ton panBas.

    Mais la seconde fois, comme tu as déjà un composant qui occupe la partie Sud de ton IHM... il n'apparait pas.

    il suffit juste de retirer l'ancien panBas pour pouvoir insérer le nouveau.

    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 boolean Asso2(String uneAction) {
            Label prenom;
            Label Rprenom;
    
            if (panBas != null) {
                remove(panBas);
            }
    
            String[] elListe = uneAction.split("-"); // Découpe l'élément de la liste de type : 1-test
            int unId = Integer.parseInt(elListe[0]); // On convertit le String elListe[0] qui correspond au numéro en int
            mabase.ajouterInfo(unId, mabase); // On ajoute les infos avec unId, la base
    
    
            prenom = new Label("Prenom : ");
            Rprenom = new Label();
            Rprenom.setText("");
            Rprenom.setText(mabase.getPrenom());
            System.out.println(Rprenom);
    
            panBas = new Panel();
            panBas.setLayout(new GridLayout(8, 2));
    
            panBas.add(prenom);
            panBas.add(Rprenom);
    
            this.add("South", panBas);
    
            setVisible(true);
    
            return true;
        }

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    GRAND MERCI !!

    Ça fonctionne très bien maintenant !

    Encore merci Rhadamenthys

    Napalm

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

Discussions similaires

  1. Mise à jour Label par une boucle
    Par memento80 dans le forum Tkinter
    Réponses: 9
    Dernier message: 04/01/2023, 19h21
  2. Mise à jours label pour chronomètre après time.sleep()
    Par Mat08 dans le forum GTK+ avec Python
    Réponses: 2
    Dernier message: 08/01/2015, 23h19
  3. Mise à jour labels
    Par krlou dans le forum IHM
    Réponses: 2
    Dernier message: 29/08/2007, 10h12
  4. [C#]mise à jour du text d'un label
    Par FraktaL dans le forum Windows Forms
    Réponses: 2
    Dernier message: 04/08/2006, 12h37
  5. [VBA-E]Boucle mise a jour label
    Par alex_95 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 03/03/2006, 14h32

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