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 :

[J(X)Table] Surcharger le comportement de 'Enter'


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 90
    Par défaut [J(X)Table] Surcharger le comportement de 'Enter'
    Bonjour à tous,

    Voilà je suis face à un problème et je me perds un peu les pieds dedans. Ce que je voudrais à la base c'est que lorsque je finis d'éditer une cellule, que l'édition se termine. Pour cela j'utilise à la base
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    _table.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);
    Ca ne change rien.

    Donc je me suis dit que je devais changer le comportement par défaut et j'ai donc fait comme ça :

    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
    		InputMap im = _table.getInputMap(JXTable.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
     
    		//  Have the enter key work the same as the tab key
    		KeyStroke tab = KeyStroke.getKeyStroke(KeyEvent.VK_TAB, 0);
    		KeyStroke enter = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0);
     
    		final Action oldEnterAction = _table.getActionMap().get(im.get(enter));
    		Action stopEditAction = new AbstractAction()
    		{
    			public void actionPerformed(ActionEvent e) {
    				oldEnterAction.actionPerformed( e );
    				int row = _table.getSelectedRow();
    				int col = _table.getSelectedColumn();
     
    				TableCellEditor editor = _table.getCellEditor(row, col);
    				if (editor != null)
    					editor.stopCellEditing();
    			}
    		};
    		_table.getActionMap().put(im.get(enter), stopEditAction);
    Et ça ne fonctionne pas vraiment, voire pas du tout.

    Donc si quelqu'un a une petite idée sur la question, je lui en serai extrêmement reconnaissante

    Merci,

  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
    L'enter ne serait-il pas plutôt choppé par l'éditor?
    Car à ce moment précis c'est l'Editor qui a la main, pas la JXTable.

    [edit] Bon je crois que j'ai compris ce dont tu parles, rien à voir avec l'editor [/edit]

    [edit2] Ca l'embrouille JTablesque très fort, essaierais de regarder ça de plus près ce soir[/edit2]

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 90
    Par défaut
    Salut sinok,

    Non je pense que au contraire c'est tout à fait possible (cf ton edit). Enfin c'est très flou pour moi mais :

    Une fois que l'Editor a la main, il ne calcule plus du tout mon Enter. Alors que la toute première fois par exemple il exécute bien l'action. D'où le "ça ne fonctionne pas vraiment".

    Mais donc il faudrait donc que je change le comportement de Enter dans chaque Editor ?

Discussions similaires

  1. Crainte de tables surchargées
    Par arthur.moreau dans le forum Administration
    Réponses: 2
    Dernier message: 16/05/2014, 10h24
  2. Réponses: 4
    Dernier message: 13/04/2011, 11h40
  3. Réponses: 11
    Dernier message: 27/08/2008, 23h20
  4. Réponses: 4
    Dernier message: 28/03/2007, 17h27
  5. [Sybase] Comportement bizarre d'une table
    Par sdozias dans le forum Sybase
    Réponses: 4
    Dernier message: 03/02/2004, 10h39

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