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 :

JComboBox editable dans une table.


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
    Avril 2004
    Messages
    574
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2004
    Messages : 574
    Par défaut JComboBox editable dans une table.
    Bonjour,

    Grâce à ce super exemple,
    http://www.java2s.com/Code/Java/Swin...olorColumn.htm
    j'ai réussi à rendre éditable des JComboBox dans une table.
    La seule question qu'il me reste donc, c'est de savoir comment il est possible de voir que c'est un JComboBox. Je m'explique : en fait, la case ressemble à un label et c'est lorsque l'on clique dessus que l'on voit apparaitre le JComboBox. Ce que je souhaiterais, c'est voir tout le temps qu'il y a la flèche de défilement du JComboBox... Vous avez une idée?

  2. #2
    Membre averti
    Inscrit en
    Juillet 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 25
    Par défaut
    je te conseil de lire le how to use Jtable sur le site de sun : http://java.sun.com/j2se/1.5.0/docs/api/

    dans ton exemple il y a 2 choses a distinguer :
    -le renderer qui affiche la couleur quand la case n'est pas editée.
    -l'editeur qui affiche une combobox quand la case est éditée.

    si tu veux qu'il y ai tout le temps un combobox cela doit etre possible en mettant un Jcombobox dans ton renderer

    Perso je pense que c'est pas la chose la plus propre du monde mais bon si c'ets ca que tu veux...

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    574
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2004
    Messages : 574
    Par défaut
    D'accord, merci, je vais regardé.
    Par contre, dans quel sens tu dis que cela n'est pas propre ?

  4. #4
    Membre averti
    Inscrit en
    Juillet 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 25
    Par défaut
    dans le sens ou le renderer et utiliser pour le rendu (lors de la visualisation des objets) et l'editor pour l'edition.
    En gros, dans un vision MCV tu peut voir le renderer comme la vue et l'editor comme un controleur le model etant ton objet(ici une couoleur).
    Les deux objets renderer et editor ont des methodes specifiques qui permetent de lire et d'afficher le contenu pour le premier et d'afficher un editeur et de modifier l'objet pour le second.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    574
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2004
    Messages : 574
    Par défaut
    Je vois. Actuellement j'ai un problème avec l'editeur.
    En fait, j'ai positionné un editeur par colonne en faisant appel à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    TableColumn column = table.getColumnModel().getColumn(i);
    column.setCellEditor(editor);
    Le problème est que cela ne fonctionne que pour une colonne de ma table et à chaque fois que je modifie une valeur dans un combo box, je me retrouve avec la valeur inscrite dans le dernier combo box de mon tableau...
    D'ailleurs je trouve cela bizarre que l'on puisse affecter un renderer pour chacun des combo box des cases du tableau et qu'il faut passer par un editeur commun à la colonne...

  6. #6
    Membre averti
    Inscrit en
    Juillet 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 25
    Par défaut
    Le problème est que cela ne fonctionne que pour une colonne de ma table et à chaque fois que je modifie une valeur dans un combo box, je me retrouve avec la valeur inscrite dans le dernier combo box de mon tableau...
    faudrait que tu face voir le code de ton editeur pour y voir plus clair.

    D'ailleurs je trouve cela bizarre que l'on puisse affecter un renderer pour chacun des combo box des cases du tableau et qu'il faut passer par un editeur commun à la colonne...
    Dans un JTable tu est sensé avoir une seul class d'objet dans chaque colone (donc un renderer et un editeur par colone suffit), tu peut aussi affecter un renderer et un editeur a une class (cela evite de devoir faire de boucle sur des miler de colone.)

    Enfin si tu veux mettre plusieur editor / ou renderer dans une meme colone il faut surchager la methodes getCellRenderer(int row, int column) ou getCellEditor(int row, int column) de ton Jtable.

    comme je te le disait au debut une lecture du how to use JTable de sun poura t'eclairsir beaucoup de chose: http://java.sun.com/docs/books/tutor...nts/table.html

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

Discussions similaires

  1. Déterminer la Valeur la plus grande dans une table
    Par arnaud_verlaine dans le forum Langage SQL
    Réponses: 9
    Dernier message: 22/08/2014, 23h35
  2. Eviter les doublon dans une table en mode edit
    Par stfanny31 dans le forum Bases de données
    Réponses: 13
    Dernier message: 06/05/2012, 07h39
  3. Bouton Edit d'une table inaccessible dans la version 2.1
    Par sat83 dans le forum Sql Developer
    Réponses: 3
    Dernier message: 13/04/2011, 09h57
  4. Recherche de donnee dans une table associée
    Par josoft dans le forum Requêtes
    Réponses: 2
    Dernier message: 14/07/2003, 15h22
  5. Comment stocker un ficher dans une table postgres
    Par josoft dans le forum Requêtes
    Réponses: 3
    Dernier message: 23/06/2003, 16h41

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