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 :

JComboBox dans le header d'une Jtable


Sujet :

Composants Java

  1. #1
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    570
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 570
    Points : 340
    Points
    340
    Par défaut JComboBox dans le header d'une Jtable
    Bonjour, voila j'ai une Jtable avec diverses colones.
    L'une de ces colones peut prendre 3 valeurs différentes. Je pourrais utiliser 3 colones, mais je trouveque cela donne trop d'nformations à l'écran, trop fouilli.
    Bref, pour regler ca de manière ergonomique pour l'utilisateur, j'aimerais intégrer un JComBox au header d'une de mes colones. Mais bah ca ne veut pas, puisque la JComboBox n'est pas un renderer mais un editor. Alors, j'arrive à "gruger" utilisant ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public class MonHeaderRenderer extends JComboBox implements TableCellRenderer 
    {
    	public MonHeaderRenderer()
    	{ 
    	}
     
    	public Component getTableCellRendererComponent(JTable table,Object value,boolean isSelected,boolean hasFocus,int row,int column)
    	{
     
          return this;
    	}
    }
    Puis ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    TableColumn coloneCodeModalite = this.getColumnModel().getColumn(2);
     
    		coloneCodeModalite.setHeaderRenderer(new MonHeaderRenderer());
    		JComboBox headerJcb=(JComboBox) coloneCodeModalite.getHeaderRenderer();
     
    		headerJcb.addItem("val1");
    		headerJcb.addItem("val2");
    		headerJcb.addItem("val3");
    Mais, si ca m'affiche bien l'image d'un JCombobox, le fait de cliquer dessus ne donne rien du tout. Alors je pourrais continuer à gruger et afficher au dessus une deuxième "vrai" JCombobox, mais bon c'est un peu du rafisolage quand même. Donc si vous aviez une idée, soit pour utiliser une Jcb, soit pour fusioner mes 3 colones en une et pouvoir passer de l'une à l'autre le plus ergonomiquement possible, cela me serait fort utile ^^

  2. #2
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Insires toi de cette solution proposée ici avec un JButton et joue avec les méthodes setPopUpVisible et isPopupVisible

    ++

  3. #3
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    570
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 570
    Points : 340
    Points
    340
    Par défaut
    Ok merci beaucoup, j'ai pu trouver ce que je voulais, merci bien.

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

Discussions similaires

  1. ContentType dans le header d'une jsp
    Par tizilfin dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 13/07/2007, 10h08
  2. [2.0] Mettre une Checkbox dans le header d'une colonne d'une DatagridView
    Par aurelien.tournier dans le forum Windows Forms
    Réponses: 5
    Dernier message: 23/01/2007, 11h27
  3. Réponses: 6
    Dernier message: 17/08/2006, 15h42
  4. JButton dans un header d'une JTable
    Par dim_italia dans le forum Composants
    Réponses: 3
    Dernier message: 18/07/2006, 19h41
  5. [JTable] Saut de ligne dans la cellule d'une JTable
    Par enocet dans le forum Composants
    Réponses: 3
    Dernier message: 15/12/2005, 14h16

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