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 hauteur du header


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de biozaxx
    Profil pro
    Inscrit en
    Août 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 403
    Par défaut JTable hauteur du header
    Salut à tous,

    t'it question : est ill possible de specifier la hauteur d'un header d'une JTable :

    A savoir , j'utilise une JTable, un Model + un TableSorter mais je ne defini pas de JTableHeader ....
    J'ai bien essayé dans le renderer de ma table mais je ne parviens qu'a fixer la largeur des cellules.

    merci 8)

  2. #2
    Membre confirmé
    Inscrit en
    Décembre 2004
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Décembre 2004
    Messages : 201
    Par défaut
    faut que tu passes par un renderer d'un tableHeader

  3. #3
    Membre éclairé Avatar de biozaxx
    Profil pro
    Inscrit en
    Août 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 403
    Par défaut
    c bien ce que je craignais
    bon merci, je vais me mettre a la tache .....

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Par défaut
    salut, c peut etre bete, mais la taille de ton header peut etre fixer par un setSize

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        FontMetrics metrics = table.getFontMetrics(table.getFont());
        table.getTableHeader().setSize(table.getTableHeader().getWidth(), metrics.getHeight());
    c'est bien cela que tu voulais faire non ?

  5. #5
    Membre éclairé Avatar de biozaxx
    Profil pro
    Inscrit en
    Août 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 403
    Par défaut
    Citation Envoyé par lilou77
    salut, c peut etre bete, mais la taille de ton header peut etre fixer par un setSize

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        FontMetrics metrics = table.getFontMetrics(table.getFont());
        table.getTableHeader().setSize(table.getTableHeader().getWidth(), metrics.getHeight());
    c'est bien cela que tu voulais faire non ?
    heu oui mais l'ajout de ton code ne change rien
    en fait je trouve la hauteur des header trop petite. Si j'ajoute ton code tel quel, cela ne change rien puisqu'il adapte la hauteur a la taille de la font utilisée (si j'ai bien pigé) , ce qui a mon avis est le comportement par défaut.
    Cependant je pensais qu'en specifiant une hauteur quelconque a la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    metrics.getHeight()
    cela allait changer la hauteur, mais en fait rien ne se passe , le résultat est le même

    pourtant le concept paraissait bien ...

  6. #6
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 51
    Par défaut hauteur header JTable
    Bonjour,

    je me permets de remonter le post car je n'arrive pas à changer la hauteur de ma JTable.

    je passe par un AbstractTableModel pour construire ma table.

    voici la classe que j'utilise pour personnaliser mon header


    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
    public class CouleurEntete extends DefaultTableCellRenderer{
    	/**
             * 
             */
    	private static final long serialVersionUID = 1L;
     
    	public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, 
    			boolean hasFocus, int row, int column)  {
    super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
     
     
     
    this.setBackground(Color.GREEN);
     
    this.setHorizontalAlignment(CENTER);
    this.setBorder(BorderUIResource.LineBorderUIResource.createGrayLineBorder());
     
     
    System.out.println(getSize().width);
     
     
     
     
    return this;
    }
     
    	private Color maCouleur = new Color(255,0,0);
     
    }


    Merci

  7. #7
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,



    Dans 95% des cas le setSize() est inutile car il est écrasé par le layout-manager. Pour rappel c'est ce dernier qui se charge de placer et redimensionner les composants. En clair setSize() sera appelé par le layout-manager quoi qu'il en soit.

    Pour les JTable/JList c'est un peu différent car les composants sont dessinés directement, mais le principe est le même : la taille et la position des cellules sont fixé et ne peuvent être défini explicitement.


    Donc pour modifier la taille finale d'un composant, il ne faut pas modifier directement sa taille, mais jouer avec ses tailles "min/max/preferred".


    En clair selon le layout ces valeurs seront utilisées pour modifier la taille finale du composant. Les layouts ne sont pas forcé de respecter ces valeurs (cela dépend du fonctionnement du layout), mais en général ils le font lorsque c'est possible/logique.


    Pour une cellule du header d'un tableau, la largeur est fixé et ne peux pas être modifiée. Par contre c'est la hauteur "preferred" qui est utilisée...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    table.getTableHeader().setPreferredSize(new Dimension(0, 160));

    a++

  8. #8
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 51
    Par défaut Merci
    ça marche impecable.

    merci

  9. #9
    Membre chevronné Avatar de javaNavCha
    Homme Profil pro
    EKG Group
    Inscrit en
    Juillet 2009
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : EKG Group
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2009
    Messages : 311
    Par défaut Résolution !!!
    Bonjour
    adiGuba
    je le cherchais moi aussi

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

Discussions similaires

  1. Jtable avec un header de type JLabel
    Par anime dans le forum Composants
    Réponses: 5
    Dernier message: 19/08/2007, 21h15
  2. [JTable] Mettre plusieurs headers sur un JTable
    Par banania dans le forum Composants
    Réponses: 2
    Dernier message: 09/07/2007, 20h49
  3. [Swing][JTable]pb de header avec Model
    Par yoshï dans le forum Composants
    Réponses: 2
    Dernier message: 19/04/2006, 11h01
  4. Jtable et line header
    Par amphore dans le forum Composants
    Réponses: 1
    Dernier message: 02/03/2006, 16h32
  5. [MFC] Hauteur du header dans un CListCtrl
    Par ouquoi dans le forum MFC
    Réponses: 2
    Dernier message: 07/02/2006, 14h56

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