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 :

Listener sur JHeader


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 26
    Par défaut Listener sur JHeader
    ... ou à la recherche du bon listeners

    Bonjour,

    Je suis à la recherche du listeners qui rend possible l'écoute sur les événements du type: "j'agrandis la colonne i de ma table". Est-ce qu'il existe un event qui est levé à chaque fois que je lâche le bouton de la souris?

    Merci d'avance

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Un TableColumnModelListener placé (bizarrement) sur le TableColumnModel.

    Tout çà a été trouvé dans la javadoc de JTableHeader, y es tu vraimen allé?

  3. #3
    Membre averti
    Inscrit en
    Février 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 26
    Par défaut
    Merci sinok,

    J'avais également pensé à utiliser un TableColumnModelListener. Le problème avec ce listener, c'est qu'il est levé à chaque fois que j'agrandi la colonne. Ce que je désire trouver, c'est un listener qui fait celà:

    1. Je clique sur la colonne que je veux redimmensionner
    2. En laissant le bouton de ma souris enfoncer, je redimmensionne la colonne que je le désire
    3. Une fois arriver au résultat, je lâche le bouton de la souris. Et c'est à ce moment là uniquement que l'évenement est déclenché.

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Bah une combinaison de TableColumnModelListener et d'un MouseListener (le TableColumnModelListener met à jour une variable, et le MouseListener se sert de cette variable dans le mouseReleased pour savoir s'il doit agir ou pas).

    ++

  5. #5
    Membre averti
    Inscrit en
    Février 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 26
    Par défaut
    Très bien, ça marche... merci sinok

    Voici la solution en code:
    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
    57
    58
    59
    60
    61
    62
     
    public class MyTable extends JTable {
      boolean _mustBeSaved = false;
      // ... //
     
      public MyTable(...){
        //...///
     
        currentModel.addColumnModelListener(new MyColumnModelListener());
     
        getTableHeader().addMouseListener(new MyMouseListener());
      }
     
      private class MyColumnModelListener implements TableColumnModelListener{
        public void columnMarginChanged(ChangeEvent changeEvent) {
          _mustBeSaved = true;
        }
     
        public void columnSelectionChanged(ListSelectionEvent listSelectionEvent) {
          // Do nothing
        }
     
        public void columnAdded(TableColumnModelEvent tableColumnModelEvent) {
          // Do nothing
        }
     
        public void columnMoved(TableColumnModelEvent tableColumnModelEvent) {
          // Do nothing
        }
     
        public void columnRemoved(TableColumnModelEvent tableColumnModelEvent) {
          // Do nothing
        }   
      }
     
     
      private class MyMouseListener implements MouseListener {
        public void mouseClicked(MouseEvent mouseEvent) {
          // Do nothing
        }
     
        public void mouseEntered(MouseEvent mouseEvent) {
          // Do nothing
        }
     
        public void mouseExited(MouseEvent mouseEvent) {
          // Do nothing
        }
     
        public void mousePressed(MouseEvent mouseEvent) {
          // Do nothing
        }
     
        public void mouseReleased(MouseEvent mouseEvent) {
          if(_mustBeSaved){
            myVeryImportantMethod();
     
            _mustBeSaved = false;
          }
        }   
      }
    }
    Encore merci !!!!

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

Discussions similaires

  1. Listener sur JTable
    Par calypso dans le forum Composants
    Réponses: 3
    Dernier message: 05/02/2009, 16h27
  2. Language]Listener sur booléen
    Par harris_macken dans le forum Langage
    Réponses: 9
    Dernier message: 12/06/2005, 00h25
  3. [LISTENER] sur l'insertion de cd
    Par divxdede dans le forum Multimédia
    Réponses: 2
    Dernier message: 03/07/2004, 11h28
  4. [JSlider] listener sur Jslider
    Par Garion dans le forum Composants
    Réponses: 4
    Dernier message: 31/05/2004, 13h33
  5. Listener sur un JPanel
    Par ptitelfe dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 27/03/2004, 13h14

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