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

AWT/Swing Java Discussion :

Tableau de JTextField


Sujet :

AWT/Swing Java

  1. #1
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut Tableau de JTextField
    Bonsoir tout le monde ,

    Je voulais savoir comment procéder pour un pb concernant les JTextField.

    En fait je voulais faire un tableau de JTexField comme ci dessous dans une grille :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private JTextField[] tabsaisie = new JTextField[81];
    Mais voilà mon problème , comment puis je exploiter cela c'est à dire je voudrais lorsque je perds le focus sur un champ il me traite l'évènement.

    Sur les tutos on voit qu'il faut faire par ex

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    saisie = new JTextField;
    contenu.add(saisie)
    saisie.addActionListener(this);
    saisie.addFocusListener(this);
    ...
    public void actionPerformed (ActionEvent e) { }
     
    public void focusGained (FocusEvent e) {}
     
    public void focusLost (FocusEvent e) { 
     
        String UserValeur = saisie.getText();
       // Traitement de la valeur ...
    }
    Mais donc mon cas comment je choisis le bon JTextField dans mon tableau oour l'exploiter au niveau des focus ?

    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
    class panneau extends JPanel {
    
        	public void paintComponent(Graphics g) { 
        		super.paintComponent(g);
        		pan.removeAll();
        		Graphics2D graphics2D = (Graphics2D) g;
        		graphics2D.setStroke(new BasicStroke( 5.0f ));
        		// Dessin des contours
        		g.drawLine(0,0,540,0);
        		g.drawLine(0,540,540,540);
        		g.drawLine(0,0,0,540);
        		g.drawLine(540,0,540,540);
        		// Dessin des séparations intérieurs
        		g.drawLine(0,180,540,180);
        		g.drawLine(0,360,540,360);
        		g.drawLine(180,0,180,540);
        		g.drawLine(360,0,360,540);
        		graphics2D.setStroke(new BasicStroke(1.0f));
    
        		// Dessin des grilles 
        		for (int i=0;i<9;i++) {
       	     		for (int j=0;j<9;j++) {
       	     			if (tab[i+j*9] == 0) { // Case vide
       	     				g.setColor(Color.black);
       	     				g.drawRect(i*60,j*60,60,60);
       	     			        tabsaisie[i+j*9] = new JTextField(1);
       	     			        tabsaisie[i+j*9].setBounds(i*60+15,j*60+15,30,30);
       	     			        tabsaisie[i+j*9].setBorder(null);
       	     			        pan.add(tabsaisie[i+j*9]);
       	     			        tabsaisie[i+j*9].addActionListener(this) ;
       	     			        tabsaisie[i+j*9].addFocusListener(this) ;
       	     			} 
    
       	     			else {
       	     				g.setColor(Color.black);
    	     				g.drawRect(i*60,j*60,60,60);
    	     				resultat = new JTextField(1);
    	     				resultat.setBounds(i*60+15,j*60+15,30,30);
       	     			        resultat.setBorder(null);
       	     			        resultat.setBackground(Color.white);
       	     			        resultat.setText(Integer.toString(tab[i+j*9]));
    	     				resultat.setEditable(false);
    	     				pan.add(resultat);
       	     			}
       	     		}
        		}
        	}
        }
    
       public void actionPerformed (ActionEvent e) { }
    
       public void focusGained (FocusEvent e) {}
    
       public void focusLost (FocusEvent e) { 
          // Traitement de la valeur
       }
    Merci pour vos réponses

  2. #2
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Tu peut récupérer le composant source de l'événement en faisant e.getComponent(), ainsi tu auras le composant qui a perdu le focus et tu pourras faire une action dessus.

  3. #3
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Merci

    J'ai pu récuper ce qui m'intéressait pour mon composant mais je voudrais récupérer la valeur entrée dans mon JTextField mais là la méthode moncomposant.getText() n'existe plus en passant par e.getComponent(). Y'a une autre méthode qui me permet de récupérer la valeur de mon champ ?

  4. #4
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    J'ai trouvé un moyen de trouver ma valeur en faisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String valeur = tabsaisie[(e.getComponent().getX()-15)/60 + ((e.getComponent().getY()-15)/60)*9].getText();
    Mais y'a peut être plus simple pour accéder directement à la valeur du champ ?

  5. #5
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Essaie avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String valeur = ((JTextField)e.getComponent()).getText();

  6. #6
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    ca marche en effet .
    Juste pour l'explication . C'est un "cast" qu'on fait sur e.getComponent() ?

    Merci pour ton aide

  7. #7
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Exactement. Par contre, avec une telle technique, il faut juste faire attention à ne pas mettre un focusListener sur autre chose que des JTextField, sinon tu auras une exception qui sera lancée. Ou alors, il te faut tester si c'est bien un JTextField avant de faire le cast.

  8. #8
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Ok , merci pour le renseignement .

    Dans mon cas , j'ai simplement le focus sur des JTextField donc pas de souci

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

Discussions similaires

  1. Afficher un tableau de JTextField
    Par Orionss dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 15/11/2013, 19h01
  2. Tableau de JTextField = jtf est null ?
    Par rXpCH dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 03/12/2008, 18h12
  3. Réponses: 1
    Dernier message: 14/08/2007, 14h18
  4. recupere les cases d'un tableau dans un JTextField
    Par naazih dans le forum Composants
    Réponses: 3
    Dernier message: 22/03/2007, 22h24
  5. [debutant]affichage du contenu d'un tableau dans du JTextField
    Par mehdi_swatch dans le forum Composants
    Réponses: 2
    Dernier message: 30/11/2006, 11h16

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