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

Composants Java Discussion :

Récupération de la valeur d'un checkbox se trouvant dant un jTable


Sujet :

Composants Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 4
    Par défaut Récupération de la valeur d'un checkbox se trouvant dant un jTable
    Bonsoir à tous
    J evoudrais récupéré la valeur d'un checkbox se trouvant dans un jTable
    le code suivant me génère une erreur:

    boolean sNumsd=(boolean)jTable1.getValueAt(2,2).equals(jTable1);

    y'aurait il un moyen de le réaliser

    Merci

  2. #2
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 111
    Par défaut
    si ton tableau affiche une checkbox, c'est qu'il contient un booleen.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    bollean b = (boolean)jTable1.getValueAt(2,2);
    qu'est ce que tu as voulu faire avec ca: .equals(jTable1) ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 4
    Par défaut
    Bonjour à tous,
    Merci pour ton aide eclisia, seulement lorsque j'écris le code suivant

    int k=0;
    boolean b=true;
    while (b)
    {

    sLib=(String)jTable1.getValueAt(k,0).toString();
    boolean b1=(boolean)jTable1.getValueAt(k,1);
    boolean b2=(boolean)jTable1.getValueAt(k,2);
    boolean b3=(boolean)jTable1.getValueAt(k,3);
    boolean b4=(boolean)jTable1.getValueAt(k,4);


    // Ici il y'aura une insertion dans la BD

    k=k+1;
    b=k<nbreLigne;
    }

    le compilateur me dit:
    java.lang.object required boolean at line 245, colum 41, correspodant à la première ligne où se situr le code à savoir

    boolean b1=(boolean)jTable1.getValueAt(k,1);

    Pour être plus claire, voici le chargement de ma jTable qui provien d'un requête. l'affichage ne pose pas de problème.J'utilise jBuilder 2005.

    try {

    PreparedStatement st = pst.prepareStatement(sql);
    // st.executeQuery();
    ResultSet Valeur = st.executeQuery();
    int i, j,nbr;
    i = 0;
    j = 0;
    // nbr=Valeur.
    boolean bL = Valeur.next();

    data[0][0]=Valeur.getString("LIBELLE");
    data[0][1]=Boolean.FALSE;
    data[0][2]=Boolean.FALSE;
    data[0][3]=Boolean.FALSE;
    data[0][4]=Boolean.FALSE;

    i=1;
    bL=Valeur.next();
    while (bL){

    for (j=0; j<5; j++){
    data[i][j]=Valeur.getString(j+1);
    }
    bL=Valeur.next();
    i=i+1;

    }


    }

    que puis-je faire??

  4. #4
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 111
    Par défaut
    de petite amélioration dabord :

    sLib=(String)jTable1.getValueAt(k,0).toString();
    -> sLib = jTable1.getValueAt(k,0).toString();

    pas besoin de faire un (String) devant vu qu'a la fin tu fais .toString() donc on est sur d'avoir une chaine.


    k=k+1;
    -> k++;
    incrementation de 1, c'est fait pour ca.


    pour ton erreur :

    data[0][1]=Boolean.FALSE;
    boolean b1=(boolean)jTable1.getValueAt(k,1);

    essai d'afficher la classe de l'objet dans la cellule avec.
    System.out.println( jTable1.getValue(k,1).class ); ou .getClass()

    je pense que ca va renvoyer un Boolean et pas un boolean.


    ps : j'ai pas d'editeur sous la main pour verifier mes dires ^^

  5. #5
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 4
    Par défaut
    j'ai essayé
    data[i][j]=(boolean)Valeur.getClass();
    et
    data[i][j]=(boolean)Valeur.Class();

    mais j'ai toujours des erreurs;

    Finalement avec le code ci-dessous
    boolean b1=(boolean)jTable1.getValueAt(k,1).equals(jTable1);

    j'arrive à avoir la valeur. le seul problème actuellement c'est que le changement de d'état des checkbox n'est pas pris en compte. c'est tours à false, valeur initiale. Comment pouvoir détecter le changement d'état du chekbox ?

  6. #6
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 4
    Par défaut
    j'ai lu qu'il fallait implémenter le TableModelListener, comment le faire?

    Merci

  7. #7
    Membre Expert
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Par défaut
    Citation Envoyé par fblaiso
    Comment pouvoir détecter le changement d'état du chekbox ?
    En ajoutant un listener à ton JCheckBox :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monCheckBox.addActionListener(new MonListener());
    Voir :

    How to Write an Action Listener


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  8. #8
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 111
    Par défaut
    essai d'afficher la classe de l'objet dans la cellule avec.
    System.out.println( jTable1.getValue(k,1).class ); ou .getClass()
    j'ai essayé
    data[i][j]=(boolean)Valeur.getClass();
    et
    data[i][j]=(boolean)Valeur.Class();

    mais j'ai toujours des erreurs;

    Finalement avec le code ci-dessous
    boolean b1=(boolean)jTable1.getValueAt(k,1).equals(jTable1);
    *il y a des jours ou il faut mieux rester couché*


    gratte toi la tete et regarde ce que tu ecris :
    boolean b1=(boolean)jTable1.getValueAt(k,1).equals(jTable1);
    et tu crois que ca peut marcher???

    je vais tacher d'expliquer :
    quand tu fais untruc.equals(unautretruc), tu demande en bon francais "est ce que untruc est le meme que unautretruc?" et java te renvoit OUI (true) ou NON (false).

    donc ca : jTable1.getValueAt(k,1).equals(jTable1)
    tu lui demande : est ce que la valeur qui est dans la cellule a cet endroit (k,1) est la meme chose que le tableau en entier? java qui fait que ce qu'on lui demande reflechit et te dit NON (false), c'est evident que le contenu d'une cellule n'est pas la meme chose que le tableau qui contient cette meme cellule.

Discussions similaires

  1. récupération de la valeur d'un checkbox en js
    Par laurentSc dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 24/03/2010, 09h15
  2. Récupération de la valeur d'une checkbox
    Par Klimium dans le forum SWT/JFace
    Réponses: 1
    Dernier message: 10/04/2009, 12h03
  3. récupération de la valeur d'une checkbox
    Par lodan dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 28/02/2008, 07h03
  4. [SQL] Récupération de la valeur d'un CheckBox
    Par VoteForMe dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 28/01/2008, 17h57
  5. récupération de deux valeurs dans une seule checkbox
    Par khayri dans le forum Struts 1
    Réponses: 2
    Dernier message: 10/04/2007, 10h31

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