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 :

modifier le comportement d'un DefaultCellEditor ?


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 260
    Par défaut modifier le comportement d'un DefaultCellEditor ?
    Bonjour,

    J'ai un petit problème assez précis que j'aimerais résoudre donc je fais appel à votre aide :

    J'ai une JTable dans laquelle j'ai mis en place un DefaultCellEditor qui fait apparaître une JComboBox en utilisant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DefaultCellEditor (JComboBox comboBox)
    Jusque la pas de problème. Maintenant, j'aimerais, sur une autre colonne, définir un comportement différent, et afficher un calendrier pour saisir une date (un JDialog en fait) lorsque l'on clique dessus.

    Seulement il n'existe pas de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DefaultCellEditor (JDialog dialog)
    et je n'ai pas réussi à faire autrement. J'ai pensé à mettre un MouseListener sur la JTable et afficher le JDialog quand c'est dans la colonne désirée mais ca fait vraiment pas propre je trouve (je me trompe peut être ?).

    Dans tous les cas, j'aimerais pouvoir faire ce que je viens de décrire et je ne sais pas trop comment m'y prendre...

    J'étais parti sur quelque chose comme ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    class DateCellEditor extends DefaultCellEditor {
    		public DateCellEditor() {
    			...
    		}
     
    	}
    Mais vu que DefaultCellEditor ne convient pas, ca ne m'aide pas vraiment.

    Auriez vous une piste pour m'aider ?

    Merci d'avance.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 260
    Par défaut
    Bon et bien vu que ca ne se bouscule pas au portillon pour m'aider j'ai mis en place un système que je trouve un peu "bidouille" mais je n'ai pas réussi à faire autrement.

    Donc en fait j'ai mis un MouseListener sur la JTable dans lequel je récupère la colonne sélectionnée, puis j'affiche ou non le calendrier en fonction de celle-ci, et ensuite j'appelle la fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setValue(Object value, int row, int col)
    de mon TableModel pour mettre à jour la table.

    D'un autre côté j'avais essayé de définir une nouvelle classe de cette forme :

    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
    class DateCellEditor extends AbstractCellEditor implements TableCellEditor {
    		public DateCellEditor() {
    			System.out.println("new DateCellEditor");
    		}
    		public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
    			return JCalendrier.getCalendrier();
    		}
    		public Object getCellEditorValue() {
    			return JCalendrier.getDate();
    		}
    		public boolean isCellEditable(EventObject anEvent) { 
    			if (anEvent instanceof MouseEvent) return true;
    			return false;
    		}
    	}
    Le problème c'est qu'il essaie de l'ajouter au Container et que c'est un JDialog qui est retourné via JCalendrier.getCalendrier()... donc ca coince... existe-t-il une solution d'après vous ?

    Merci.

  3. #3
    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
    Vas voir du coté de SwingX et de son DatePickerEditor pour JXTable.

    A noter que ce genre d'editors sont relaivement lourds à mettre en place car nécessitant une gestino relativement fine du focus ( focus et JTable nne sont pas de grands amis).

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 260
    Par défaut
    Bon tant pis, je reste comme ca, ca à l'air de marcher correctement...

    Merci pour les infos

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 13/04/2011, 11h40
  2. Modifier le comportement d'un formulaire
    Par Immothep dans le forum Langage
    Réponses: 4
    Dernier message: 21/06/2007, 15h46
  3. Modifier le comportement d'une fenêtre de choix
    Par Nalmo dans le forum Applets
    Réponses: 1
    Dernier message: 03/11/2006, 10h50
  4. modifier le comportement d'ArrayList
    Par Zorgz dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 09/10/2006, 13h31
  5. [D7] Modifier le comportement d'un FieldKind = fklookup
    Par Débéa dans le forum Bases de données
    Réponses: 4
    Dernier message: 30/01/2006, 12h31

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