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 :

For each sur Composant ? Initialiser des composants.


Sujet :

Interfaces Graphiques en Java

  1. #1
    Inactif  
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 497
    Points : 312
    Points
    312
    Par défaut For each sur Composant ? Initialiser des composants.
    Bonjour,

    Sur un panel (Panel1), j'ai 25 jTextField + 1 button Valider.

    J'aimerais que, quand je click sur le button : Valider, une boucle foreach, me permette d'initialiser les 25 jTextField à des champs vide.


    private void ButtonValid(java.awt.event.MouseEvent evt) {




    }

    Merci.

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 497
    Points : 312
    Points
    312
    Par défaut
    J'utilisais cette méthode tres pratique en VB.net, mais en Java j'ai cherché, sans trop trouver grand chose.


    En VB, ca donné apeu près ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    For Each TB As Control in Panel1.Controls
     
        If TypeOf (TB)= TextBox then   
            TB.Text= ""
        End if
     
    Next

  3. #3
    Membre habitué
    Inscrit en
    Juin 2007
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 125
    Points : 140
    Points
    140
    Par défaut
    Bonjour,
    étant donné que tu connais le nombre exact de tes JTextField (25 ici) tu peux utiliser une boucle for.

    Tu peux regarder aussi du côté de JPanel dans la javadoc, il me semble qu'il existe une méthode te permettant d'avoir une liste de Component.

  4. #4
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    mets tes JTextfields dans une liste puis parcourre ta list....

  5. #5
    Inactif  
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 497
    Points : 312
    Points
    312
    Par défaut
    Bonjour,

    En faite mes boutons sont créés dynamiquement en fonction de plusieurs sélections antérieurs.

    Donc, sur la Form_3, il y a 25 boutons, tout comme elle peut en contenir 17 à la dexieme session.

    Finalement,
    au bouton click, je devrais normalement executer un for each qui me permettra de parcourir les composants de mon jPanel2, malheursement je n'ai pas trouvé cette méthode dans le Javadoc, mais par contre, j'ai fais ceci :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    /* TEST QUAND JE CLICK SUR LE BOUTON VALIDER*/
     
            Component [] comp;
            comp=jPanel2.getComponents(); // stocke tous les composant du jPanel2
            String s="";
     
            for(int j=0;j<comp.length;j++){ // Parcours tous les composants du tableau comp []
                if(comp[j].getClass().getSimpleName().equals("JTextField")) // Filtre que les JTextField de comp[]
                    s += comp[j].getClass().getSimpleName()+ "\n"; // Stocke les noms des composants
            }
            jTextArea1.setText(s);
     
     
    /* FIN TEST */


    mais voila, je n'arrive pas a acceder a la propriété .setText(String) de comp[j], que je devrais caster en jTextField au péalable (sans reussite).
    pour pouvoir mettre les champs de jTextFied à vide : comp[j].setText="";

    Si vous pouvez m orienter, merci d avance.

  6. #6
    Inactif  
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 497
    Points : 312
    Points
    312
    Par défaut


    personne ?

  7. #7
    Membre habitué
    Inscrit en
    Juin 2007
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 125
    Points : 140
    Points
    140
    Par défaut
    que je devrais caster en jTextField au péalable (sans reussite)
    C'est bizarre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(comp[j].getClass().getSimpleName().equals("JTextField"))
    {
       JTextField jt = (JTextField)comp[j];
       jt.setText("");
    }
    Je ne comprends pas pourquoi tu stockes les noms des JTextField dans une String.

    malheuresement je n'ai pas trouvé cette méthode dans le Javadoc
    La méthode getComponents() te retourne bien une liste de tous tes composants.

  8. #8
    Inactif  
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 497
    Points : 312
    Points
    312
    Par défaut
    ouais, merci,

    Voici le code, si besoin est ?!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
         // TEST
            Component [] comp;
            comp=jPanel2.getComponents(); // stocke tous les composant du jPanel2 dans un tableau de composant
     
            for(int i=0;i<comp.length;i++){ // Parcours tous les composants du tableau comp []
                if(comp[i].getClass().getSimpleName().equals("JTextField")){// Filtre que les JTextField du tableau
                    JTextField jt = (JTextField)comp[i];
                    jt.setText("");
                }
            }
     
            // FIN TEST

  9. #9
    Inactif  
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 497
    Points : 312
    Points
    312
    Par défaut
    ouais, merci,

    Voici le code, si besoin est ?!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
         // TEST
            Component [] comp;
            comp=jPanel2.getComponents(); // stocke tous les composant du jPanel2 dans un tableau de composant
     
     
            for(int i=0;i<comp.length;i++){ // Parcours tous les composants du tableau comp []
                if(comp[i].getClass().getSimpleName().equals("JTextField")){// Filtre que les JTextField du tableau
                    JTextField jt = (JTextField)comp[i];
                    jt.setText("");
                }
            }
     
            // FIN TEST

Discussions similaires

  1. Réponses: 7
    Dernier message: 09/04/2009, 09h34
  2. des tuto sur l'utilisation des composant ado
    Par kroma23 dans le forum Bases de données
    Réponses: 1
    Dernier message: 12/11/2008, 08h51
  3. Question sur le formats des composants [form]
    Par argon dans le forum Webdesign & Ergonomie
    Réponses: 3
    Dernier message: 17/04/2008, 09h04
  4. Achat pc desktop, besoin d'aide sur le choix des composants
    Par Matalobos dans le forum Ordinateurs
    Réponses: 29
    Dernier message: 25/08/2007, 23h16
  5. Réponses: 17
    Dernier message: 12/04/2007, 15h42

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