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 :

[LAF][JTABLE]Modifier l'action de 'ENTER'


Sujet :

Composants Java

  1. #1
    Membre expérimenté
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Points : 1 680
    Points
    1 680
    Par défaut [LAF][JTABLE]Modifier l'action de 'ENTER'
    Bonjour,
    Par défaut la touche 'ENTER' sur une JTable fait circuler le focus de bas en haut et de gauche à droite. Moi je voudrais utiliser cette touche pour rajouter une nouvelle ligne vide si on est sur la dernière ligne, et aller à la première colonne de la ligne suivante sinon.
    Il me semble que je peux modifier ces actions via une commande du style pour les JTable :
    UIManager.put("ComboBox.ancestorInputMap", new UIDefaults.LazyInputMap(new Object[] {
    "ESCAPE", "hidePopup",
    "PAGE_UP", "pageUpPassThrough",
    "PAGE_DOWN", "pageDownPassThrough",
    "HOME", "homePassThrough",
    "END", "endPassThrough",
    "DOWN", "selectNext",
    "KP_DOWN", "selectNext",
    "alt DOWN", "togglePopup",
    "alt KP_DOWN", "togglePopup",
    "alt UP", "togglePopup",
    "alt KP_UP", "togglePopup",
    "SPACE", "spacePopup",
    "ENTER", "enterPressed",
    "UP", "selectPrevious",
    "KP_UP", "selectPrevious"}
    ));
    Mais je ne trouve pas justement. Ou bien si vous voyez un autre moyen...
    merci

  2. #2
    Membre expérimenté
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Points : 1 680
    Points
    1 680
    Par défaut
    hé hé j'ai trouvé
    Donc pour désactiver l'action par défaut de la touche entrée sur les JTable il faut faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    javax.swing.InputMap inputMap = (javax.swing.InputMap)javax.swing.UIManager.get("Table.ancestorInputMap");
    inputMap.remove(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_ENTER, 0));
    javax.swing.UIManager.put("Table.ancestorInputMap", inputMap);
    Puis pour faire l'action désirée dans ma JTable je rajoute ça dans mon constructeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    this.getInputMap().put(KeyStroke.getKeyStroke("ENTER"), "enter-new-line");
    this.getActionMap().put("enter-new-line", new AbstractAction(){
    		public void actionPerformed(ActionEvent e){
    				if(DesignationTable.this.getSelectedColumn() == DesignationTableModel.CTOT
    					&& DesignationTable.this.getSelectedRow() == DesignationTable.this.dtm.getRowCount()-1){
    					DesignationTable.this.dtm.addEmptyRow();
    				}
    		}
    });
    ou DesignationTable et DesignationTableModel héritent de Jtable et de TableModel, dtm est mon DesignationTableModel dans DesignationTable.

    voilou

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    merci pour la solution, j'avais la même problèmatique que toi.

  4. #4
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 117
    Points : 70
    Points
    70
    Par défaut
    Merci Aussi. Sinon pour connaitre la liste des actions jTable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unejTable.getActionMap().allKeys();

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 06/06/2006, 10h27
  2. [JTable]Modifier les valeurs en temps réel
    Par yoshï dans le forum Composants
    Réponses: 11
    Dernier message: 02/06/2006, 17h11
  3. [formulaire] Modifier l'action engendrée par la touche [Entrée]
    Par FrankOVD dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 12/05/2006, 16h58
  4. [JTable] modifier les données à postériori
    Par SheikYerbouti dans le forum Composants
    Réponses: 4
    Dernier message: 09/02/2006, 12h19
  5. [JTable] Modifier la couleur de fond d'une ligne
    Par joes_bushi dans le forum Composants
    Réponses: 2
    Dernier message: 20/09/2005, 12h13

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