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 :

Listener JTable probleme e.getSource instanceof(JTable)


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2002
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mars 2002
    Messages : 244
    Par défaut Listener JTable probleme e.getSource instanceof(JTable)
    Bonjour, j'ai un petit problème avec une JTable.
    Je travaille avec une architecture MVC (donc mon controlleur est dans un autre fichier.java)

    J'aimerai mettre un bouton enabled seulement si une sélection est faite dans ma table (je n'ai pas besoin de savoir ce que contient la sélection).

    Quand je fais cette opération avec une JListe, cela fonctionne.
    Voici le code pour ma JList:
    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
    /**
             * This method initializes Liste_TVA_PCT
             *
             * @return javax.swing.JList
             */
    	private JList getListe_TVA_PCT() {
    		try{
    			if (Liste_TVA_PCT == null) {
    				Liste_TVA_PCT = new JList();
    				Liste_TVA_PCT.setName("Liste_TVA_PCT");
    				this.initialiseListe_TVA_PC(Liste_TVA_PCT, TVA_SQL.getListeTVATaux(connect));
    				Liste_TVA_PCT.setDragEnabled(true);
    				Liste_TVA_PCT.addListSelectionListener(controleur);
    			}
    		}catch(SQLException ex){
    			System.out.println("Erreur JDBC : "+ex.getMessage());
    		}
    		return Liste_TVA_PCT;
    	}
    et je récupère l'événement sur ma JList dans mon cotrolleur comme 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
    15
    16
    17
    18
    19
    20
    21
    22
    	public void valueChanged(ListSelectionEvent e) {
    		if (e.getSource()instanceof JList){
    			System.out.println("JListe");
    		}
    		if (e.getSource()instanceof JTable){
    			System.out.println("JTable");
     
    		}
    		if (vue!=null && vue.isActive()){
    			if(!e.getValueIsAdjusting()) {
    				JList list = (JList)e.getSource();
    				if (list.getName()=="Liste_TVA_PCT"){
    					System.out.println("OK");
    					if(list.getSelectedIndex()!=-1){
    						vue.Enable_btnSupprimerTVA(true);
    					}
    					else{
    						vue.Enable_btnSupprimerTVA(false);
    					}
    				}
    			}
    		}
    Pour savoir si je suis dans une JListe je fais le test suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public void valueChanged(ListSelectionEvent e) {
    		if (e.getSource()instanceof JList){
    			System.out.println("JListe");
    		}
    par contre si je fais le même test pour une JTable, je ne rentre jamais dans mon instruction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public void valueChanged(ListSelectionEvent e) {
    		if (e.getSource()instanceof JList){
    			System.out.println("JListe");
    		}
    		if (e.getSource()instanceof JTable){
    			System.out.println("JTable");
     
    		}
    Voici le code de ma JTable:
    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
    	/**
             * This method initializes TableTypesTVA
             *
             * @return javax.swing.JTable
             */
    	private JTable getTableTypesTVA() {
    		try{
    			if (TableTypesTVA == null) {
    				TableTypesTVA = new JTable();
    				TableTypesTVA.setName("TableTypesTVA");
    				this.setTableTypesTVA(Type_SQL.getMatriceAllTypeDescitpion_TypeTVATaux(connect));
    				TableTypesTVA.getSelectionModel().addListSelectionListener(controleur);
    			}
    		}catch(SQLException ex){
    			System.out.println("Erreur JDBC : "+ex.getMessage());
    		}
    		return TableTypesTVA;
    	}
    Je sais que je provoque bien un événement mais j'ai directement un problème quand je caster l'événement de ma JTable:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    //pour une JList
    JList list = (JList)e.getSource();
    //pour une JTable
    JTable table = (JTable)e.getSource();
    Ca fonctionne pour ma JList mais pas pour ma JTable.

    Je n'utilise peut-être pas le bon objet quand l'événement vient de ma JTable.
    Ce n'est pas e.getSource()?

    Merci de votre aide.

  2. #2
    Membre confirmé
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    65
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 65
    Par défaut
    Tu appelle ça débuter ??

  3. #3
    Membre éclairé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2002
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mars 2002
    Messages : 244
    Par défaut
    Je dois mettre ça dans un autre forum?

  4. #4
    Membre confirmé
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    65
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 65
    Par défaut
    Le forum des interfaces graphiques avec awt et swing sera plus approprié à mon sens

  5. #5
    Membre éclairé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2002
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mars 2002
    Messages : 244
    Par défaut
    Voilà, c'est fait.

    Je ne sais toujours pas quel listener utiliser.

    Je cherche surtout à ce que l'événement rentre dans mon controleur et à savoir de quelle JTable il vient.
    J'auais aussi besoin de savoir si la sélection contient 0 ligne ou 1 ligne ou plus d'1 ligne.

    Merci de vos éclaircissements.

Discussions similaires

  1. [JTable] probleme de constructeur et d'affichage
    Par hby dans le forum Composants
    Réponses: 3
    Dernier message: 01/05/2006, 16h43
  2. [JTable] probleme de rafraichissement
    Par biozaxx dans le forum Composants
    Réponses: 6
    Dernier message: 13/02/2006, 14h14
  3. [JTable] probleme suppression ligne
    Par lilou77 dans le forum Composants
    Réponses: 1
    Dernier message: 01/11/2005, 10h34
  4. Quel listener pour l'édition d'une JTable?
    Par ®om dans le forum Composants
    Réponses: 4
    Dernier message: 11/05/2005, 21h13
  5. [JSCROLLPANE][JTABLE] Probleme de raf...
    Par thibaud dans le forum Composants
    Réponses: 5
    Dernier message: 04/05/2004, 11h26

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