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 dans un JTableHeader


Sujet :

AWT/Swing Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 11
    Points : 6
    Points
    6
    Par défaut JComboBox dans un JTableHeader
    Bonjour,

    J'ai un petit soucis avec mon JTableHeader. J'ai besoin de mettre un JComboBox dans le Header des colonnes de ma JTable. Pour cela je redefinis les TableCellRenderer du JTableHeader

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    m_oAttractionsTable.getTableHeader().setDefaultRenderer(new ColumnHeaderRenderer());
    m_oAttractionsTable étant ma JTabe

    et ColumnHeaderRenderer etant ma class qui etends JPanel et implemente TableCellRenderer

    Signature :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public class ColumnHeaderRenderer extends JPanel implements TableCellRenderer
    Dans cette classe je peuple mon JPanel avec la methode getTableCellRendererComponent dans ce JPanel je met mon JComboBox.

    Je ne peux cliquer le JComboxBox et meme si je met un Listener sur le Panel et il ne reagis pas au clique.

    Je pense que c'est probléme d'accessibilité du component mais je ne trouve pas de solutions...

    Merci d'avance pour vos réponses.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Points : 1 241
    Points
    1 241
    Par défaut
    Salut,
    en faite il ne faut pas définir le CellRenderer mais le CellEdidor. Un renderer ne sert que pour gérer l'affichage de tes cellule pas pour les modifier.

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Je ne souhaite pas modifier une cellule de mon tableau mais le Header (JTableHeader). Je ne peux donc pas (à ma connaissance) définir un celleditor a un JTableHeader.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Points : 1 241
    Points
    1 241
    Par défaut
    Tu est obligé d'avoir une JComboBox ? Qu'est ce que tu veut modifier, parce que je ne pense pas que ce que tu veux faire soit possible de base.

  5. #5
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    En fait je voudrai avoir une JComboBox qui Activerai/Desactiverai ma colonne pour l'edition selon l'état de la JComboBox.

    Etant donné que ca ne fais pas partie des data de mon table je ne veux pas le mettre dans la JTable en elle même.

  6. #6
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Points : 1 241
    Points
    1 241
    Par défaut
    tu peut faire un panel au dessus de ta Jtable qui contient toutes tes combobox pour chaque colonne. C'est une solution déseperé

  7. #7
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Lol ouais j'y avais penser mais je voulai essayer au maximum de centraliser les controles. Mais bon je pense que je vais faire ca au final. En tout cas merci beaucoup de t'être interressé à mon problême.

  8. #8
    Membre actif Avatar de Lethal
    Profil pro
    Développeur Java
    Inscrit en
    Février 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2006
    Messages : 194
    Points : 227
    Points
    227
    Par défaut
    pourquoi pas un JPopupMenu qui permet d'activer désactiver quand tu clic droit sur le header?

  9. #9
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    En fait j'ai besoin que ca soit un élement graphique (JComboBox) car en fait j'ai plusieurs états possible qui definissent la maniere avec laquelle sera editable colonne de ma JTable, de plus pour la simplicité de mon UI il est préferable que cela apparaisse sans intervention de l'utilisateur.

  10. #10
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Points : 1 241
    Points
    1 241
    Par défaut
    ou peut-être tu peut mettre tes JComboBox sur la première ligne de ta JTable et definir les modèle et editor avec une condition spécial pour la première ligne

  11. #11
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Oui Atha2 je suis en train de faire ca la, mais ce qui me gene c'est que je trouve ca "impropre" car ca ne fais pas partie des données de mon tableau, mais bon je vais bien définir le model de ma table et ca devrai le faire !

Discussions similaires

  1. JComboBox dans le header d'une Jtable
    Par Djobird dans le forum Composants
    Réponses: 2
    Dernier message: 06/08/2007, 10h44
  2. Réponses: 6
    Dernier message: 19/07/2007, 13h07
  3. Réponses: 6
    Dernier message: 20/09/2006, 11h01
  4. supprimer un item d'un jcombobox dans une jtable
    Par bellout dans le forum Composants
    Réponses: 6
    Dernier message: 22/06/2006, 16h06
  5. Vérification de l'etat des JComboBox dans JTable
    Par nicotine002 dans le forum Composants
    Réponses: 5
    Dernier message: 26/01/2006, 11h47

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