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 :

[JTable]Modifier le mode d'édition!


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 9
    Par défaut [JTable]Modifier le mode d'édition!
    Bonjour à tous, quelqu'un sait comment modifier la manière dont une cellule est éditée quand on clique dedans?
    J'aimerais sélectionner tout le texte de la cellule automatiquement car actuellement je suis obligé de le faire manuellement.
    Merci beaucoup

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 65
    Par défaut
    Salut,

    rregarde du côté des editors (DefaultCellEditor) et des delegates (EditorDelegate) tu devrais trouver ton bonheur.

  3. #3
    Membre émérite
    Avatar de bbclone
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 537
    Par défaut
    essaye ca:

    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
    import java.awt.EventQueue;
    import java.awt.HeadlessException;
    import java.lang.reflect.Array;
    import javax.swing.JFrame;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.JTextField;
     
    /**
     * @author bebe
     */
    public class TableEditorDemo extends JFrame {
     
        public TableEditorDemo() throws HeadlessException {
            super("This is a test");
     
            /* Object !!! */
            Object [] []o = (Object[][]) Array.newInstance(Object.class, 10, 10);
            Object [] c = (Object[]) Array.newInstance(Object.class, 10);
            for (int i = 0; i<10; i++) {
                for (int j = 0; j<10; j++) {
                    o[i][j] = "" + (i+1) + " * " + (j+1) + " = " + ((i+1)*(j+1));
                }
                c[i] = "" + (i+1);
            }
     
     
            JTable myTable = new JTable(o, c);
            /*set default editor for Objects */
            myTable.setDefaultEditor(Object.class, new MyDefaultCellEditor(new JTextField()));
     
     
            add(new JScrollPane(myTable));
     
            setSize(400, 300);
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            setLocationRelativeTo(getParent());
            setVisible(true);
        }
     
     
        public static void main(String[] args) {
            EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new TableEditorDemo().setVisible(true);
                }
            });
        }
    }
    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
     
    import java.awt.event.FocusListener;
    import java.awt.event.FocusEvent;
    import javax.swing.DefaultCellEditor;
    import javax.swing.JTextField;
     
    /**
     * @author bebe
     */
    public class MyDefaultCellEditor extends DefaultCellEditor implements FocusListener {
     
     
        JTextField editorComponent;
     
        public MyDefaultCellEditor(final JTextField textField) {
            super(textField);
            setClickCountToStart(1);
            editorComponent = textField;
            editorComponent.setBorder(null);
            editorComponent.addFocusListener(this);
        }
     
     
        public void focusGained(FocusEvent e) {
            editorComponent.selectAll();
        }
     
        public void focusLost(FocusEvent e) {
            //To change body of implemented methods use File | Settings | File Templates.
        }

    j'ai changer le DefaultCellEditor de la classe Object pour cette table. si tu utilise des String, Integer... tu dois changer/creer tes propres editeurs.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 9
    Par défaut
    Bonjour, en effet tu as raison bbclone ton code marche bien, le problème c'est quand on passe d'une colonne à une autre avec la touche TAB, ça ne sélectionne plus TOUT LE CONTENU.
    Il faut faire quoi alors?
    Ajouter un KeyListener?
    Merci quand même pour cette réponse rapide.

  5. #5
    Membre éclairé

    Profil pro
    Coach Agile
    Inscrit en
    Décembre 2005
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Coach Agile

    Informations forums :
    Inscription : Décembre 2005
    Messages : 316
    Par défaut Doc JTable
    Jette un oeil ici : http://mbaron.developpez.com/javase/javavisu/.
    Perso, j'ai trouvé ça trés complet.

    Chris.

  6. #6
    Membre émérite
    Avatar de bbclone
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 537
    Par défaut
    quand tu passe d'une cellule a l'autre en utilisant la touche tab ou les fleches du clavier, la cellule n'est pas encore en mode edit.
    une facon de faire serait de surcharger l'action qui s'execute quand tu appuye sur tab pour automatiquement faire un tab et un F2 (F2 passe en edition).

Discussions similaires

  1. [LAF][JTABLE]Modifier l'action de 'ENTER'
    Par narmataru dans le forum Composants
    Réponses: 3
    Dernier message: 13/10/2006, 18h40
  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. [JTable] modifier les données à postériori
    Par SheikYerbouti dans le forum Composants
    Réponses: 4
    Dernier message: 09/02/2006, 12h19
  4. probleme avec zone liste modifiable en mode continu
    Par hellosct1 dans le forum Access
    Réponses: 3
    Dernier message: 16/11/2005, 13h47
  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