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 :

Recuperer celulle d'un jtable dans un jTexfield


Sujet :

Composants Java

  1. #1
    Membre habitué Avatar de Alex1407
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juin 2013
    Messages : 166
    Points : 149
    Points
    149
    Par défaut Recuperer celulle d'un jtable dans un jTexfield
    Bonjour,

    Je souhaite récupérer le contenu d'une cellule d'un Jtable dans un jtexfield qui se trouve dans une autre fenetre.je vais vous mettre le code pour que sa sois plus clair.
    Ici je suis dans la Jframe DMO, lors d'un double clique sur le jtextfield 'operateur' je lance la Jframe Operateur qui contient qu'un jtable avec toute les personnes de ma BDD.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    JTextField operateur = 	new JTextField();
    		operateur.setText(null);
    		operateur.addMouseListener(new MouseAdapter() {
    			@Override
    			public void mouseClicked(MouseEvent event) {
    				if (event.getClickCount() == 2) {
    				Operateur Operateur = new Operateur();
    				Operateur.setVisible(true);
    				}
    			}
    		});
    		operateur.setBounds(210, 151, 122, 20);
    		contentPane.add(operateur);
    		operateur.setColumns(10);
    Ensuite dans mon Jtable j'ai ajouté un évènement sur un clique de souris, je récupère bien la cellule (mon System.out.println(Matricule) fonctionne);
    :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    	table = new JTable();
    		table.addMouseListener(new MouseAdapter() {
    			@Override
    			public void mouseClicked(MouseEvent arg0) {
    				int ligne = table.getSelectedRow();
    				 Matricule = table.getModel().getValueAt(ligne, 1).toString();
    				//System.out.println(Matricule);
     
    				 operateur.setText(Matricule);
    				 dispose();
    			}
    		});
    		scrollPane.setViewportView(table);
    Je souhaite donc insérer la cellule dans le jtexfield qui se trouve dans DMO. Mon jtexfield est en Public.

    j'ai cette erreur :
    Exception in thread "AWT-EventQueue-0" java.lang.Error: Unresolved compilation problem:
    Cannot make a static reference to the non-static field DMO.operateur
    at Operateur$2.mouseClicked(Operateur.java:64)
    et en public static :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DMO.operateur.setText(Matricule);
    j'obtiens ca :

    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at Operateur$2.mouseClicked(Operateur.java:64)
    Merci pour votre aide

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Tu ne peux pas accèder en static à une variable non static. Il s'agit d'une variable d'instance, donc il te faut l'instance pour y avoir accès. Il te faut donc un moyen d'accèder à cette instance. Tout dépend de l'architecture complète : si la fenêtre avec la JTable est ouverte par une action dans la fenêtre qui a le JTextField, tu peux passer la référence de ce JTextField à la fenêtre avec la JTable en ouvrant cette fenêtre. Si tu as beaucoup de fenêtres, avec beaucoup d'interaction, soit tu mets en place un MVC, et par ce modèle, tous les composants pourront se mettre à jour (par évenement), soit tu peux mettre en place un event dispatcher sous forme de singleton : chaque composant s'enregistre comme écouteur, et émet des évenements vers ce dispatcher. Ainsi, quelque soit l'endroit où se trouve un composant, il peut toujours savoir quand un autre composant se met à jour et se mettre à jour en fonction (comme afficher la valeur d'une cellule d'une JTable).

    Si tu mets ta variable en static, cela posera un problème si tu as plusieurs instances possibles (une variable static est partagée entre toutes les instances). C'est en général une mauvaise pratique (de faire des variables static). Mais si ta fenêtre (avec le JTextField) est forcément unique, cela peut être une solution, mais il faut bien faire attention à l'initialisation de la variable (la fenêtre est forcément une instance, l'initialisation va donc se faire lorsque la fenêtre est construite, au mieux). Tu dois mal faire l'initialisation (pas au bon moment, ou pas la bonne variable) et c'est pourquoi tu obtiens une NullPointerException.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre habitué Avatar de Alex1407
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juin 2013
    Messages : 166
    Points : 149
    Points
    149
    Par défaut
    merci pour votre aide,

    en effet mes jtextfields n'était pas initialisé au début de ma jframe. J'ai mis mes jtextfields en static pour pouvoir tester.

    tu peux passer la référence de ce JTextField à la fenêtre avec la JTable en ouvrant cette fenêtre
    Cela m'éviterait-il d'avoir deux fois la même fenêtre ?
    Auriez-vous un exemple ?


    J'ai un autre problème, mais je ne vais pas créer une nouvelle discutions pour ca. Dans ma jframe je récupère les heures saisies sous se format "7h30" et j'ai une méthode qui convertit en centieme.Mais lorsque je saisis "7.30" celle-ci ne fonctionne plus.

    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
    int minutes = 0;
    		String separator =null ;
    		for (int i = 0; i < value.length(); i++) {
    			if (!Character.isDigit(value.charAt(i))) {
    				separator = value.charAt(i) + "";
    			}
    		}
     
    		try {
    			minutes = Integer.parseInt(value.split(separator)[1]);
    		} catch (ArrayIndexOutOfBoundsException e) {
    			System.out.println(e.getMessage());
    		}
     
    		return Integer.parseInt(value.split(separator)[0]) + ((minutes * 100 / 60) / 100.0);
    Merci

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

Discussions similaires

  1. Recuperer du "texte" dans un jTexfield
    Par norkoffire dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 19/06/2007, 14h05
  2. Réponses: 5
    Dernier message: 30/03/2007, 20h54
  3. recuperer une PJ txt outlook dans ACCESS
    Par EE dans le forum Access
    Réponses: 2
    Dernier message: 18/11/2005, 20h35
  4. [sgbd] Recuperer valeurs d'un Select dans un tableau
    Par Mu_Belier dans le forum SGBD
    Réponses: 16
    Dernier message: 27/05/2005, 15h46
  5. JTable dans un scrollpane
    Par Scrusher dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 04/05/2004, 20h45

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