Mise a jour Label

napalm45 Messages postés 8 Date d'inscription mardi 8 février 2011 Statut Membre Dernière intervention 11 février 2011 - 9 févr. 2011 à 13:41
napalm45 Messages postés 8 Date d'inscription mardi 8 février 2011 Statut Membre Dernière intervention 11 février 2011 - 11 févr. 2011 à 09:18
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.

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=java]

// ------------------------------- 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
// ------------------------------- 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;
}

/code

Avez vous une petite réponse pour m'aider svp..

Merci d'avance

Napalm

6 réponses

napalm45 Messages postés 8 Date d'inscription mardi 8 février 2011 Statut Membre Dernière intervention 11 février 2011
9 févr. 2011 à 13:44
Veuillze m'excuser, mauvaise mise en page... :s

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.


// ------------------------------------ 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
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
9 févr. 2011 à 16:17
Salut,

Je sais pas ce que tu as voulu faire ni même ce que tu cherches vraiment à faire (SWING/AWT/SWT/WEB/AUTRE ?) mais quand tu appels ta méthode 'Asso2', certes tu créer 2 label (totalement useless de refaire systématiquement les 2 instances pour changer un misérable petit texte) mais tu ne les ajoutes a aucun conteneur... du coup tu n'auras aucune vue graphique de la modification.




------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0
napalm45 Messages postés 8 Date d'inscription mardi 8 février 2011 Statut Membre Dernière intervention 11 février 2011
9 févr. 2011 à 19:27
Je sais bien Twinuts que c'est totalement useless mais je n'ai pas trouvé d'autre solution pour afficher mes Label.
Cependant j'affiche bien mes Label dans des conteneurs :


prenom = new Label("Prenom : ");
Rprenom = new Label();
Rprenom.setText("");
Rprenom.setText(mabase.getPrenom());

panBas = new Panel();
panBas.setLayout(new GridLayout(8,2));

panBas.add(prenom);
panBas.add(Rprenom);

this.add("South",panBas);

setVisible(true);



Je cherche tout simplement a mettre a jour mon Label selon ou je clique afin de changer mes données

Un exemple : Si je clique sur "A" je veux afficher "toto" et si je clique sur "B" je veux afficher "youhou"

Cela est peut-être plus explicite ? Si il y a besoin de plus de code, je peux le mettre.

Merci en tout cas de ta réponse

Napalm
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
9 févr. 2011 à 20:10
Salut,

Ok va pour l'exemple... pour rester en accord avec ton code je vais le faire en AWT :

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class UpdateLabel extends Frame {
private static final long serialVersionUID   = 854838996114931767L;
private Button            buttonA            = null;
private Button            buttonB            = null;
private Label             labelFirstName     = null;

public static void main(final String[] args) {
new UpdateLabel().setVisible(true);
}

public UpdateLabel() {

final Panel panCenter = new Panel();
panCenter.setLayout(new GridLayout(8, 2));
panCenter.add(new Label("First Name : "));
panCenter.add(getLabelFirstName());
this.add(panCenter, BorderLayout.CENTER);

final Panel panSouth = new Panel();
panSouth.setLayout(new FlowLayout(FlowLayout.RIGHT));
panSouth.add(getButtonB());
panSouth.add(getButtonA());
this.add(panSouth, BorderLayout.SOUTH);

// Ajout des listeners
final Listeners listeners = new Listeners(this);
addWindowListener(listeners);
getButtonA().addActionListener(listeners);
getButtonB().addActionListener(listeners);
setSize(300, 300);
setLocationRelativeTo(null);
}

public Button getButtonA() {
if (buttonA == null) {
buttonA = new Button();
buttonA.setLabel("Button A");
}
return buttonA;
}

public Button getButtonB() {
if (buttonB == null) {
buttonB = new Button();
buttonB.setLabel("Button B");
}
return buttonB;
}

public Label getLabelFirstName() {
if (labelFirstName == null) {
labelFirstName = new Label();
labelFirstName.setText("Bob");
}
return labelFirstName;
}

}

class Listeners extends WindowAdapter implements ActionListener {

private UpdateLabel	adaptee	= null;

public Listeners(final UpdateLabel adaptee) {
this.adaptee = adaptee;
}

@Override
public void windowClosing(final WindowEvent e) {
System.exit(0);
}

@Override
public void actionPerformed(final ActionEvent e) {
final Object o = e.getSource();
if (o.equals(adaptee.getButtonA())) {
// changement du prenom en toto
adaptee.getLabelFirstName().setText("toto");
} else if (o.equals(adaptee.getButtonB())) {
// changement du prenom en youhou
adaptee.getLabelFirstName().setText("youhou");
}
}
}





------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
napalm45 Messages postés 8 Date d'inscription mardi 8 février 2011 Statut Membre Dernière intervention 11 février 2011
10 févr. 2011 à 09:23
Je te remercie bien de ton aide :)

Cordialement
0
napalm45 Messages postés 8 Date d'inscription mardi 8 février 2011 Statut Membre Dernière intervention 11 février 2011
11 févr. 2011 à 09:18
Ayant fait d'autre recherche j'ai trouvé un solution pour ceux qui recherches également :

Il faut simplement que je test si mon Panel "panBas" est different de null alors dans ce cas je le supprime.

if (panBas != null) 
{ remove(panBas); }
0
Rejoignez-nous