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 :

Eliminer le 'tableHeader' d'un tableau JTable


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 263
    Par défaut Eliminer le 'tableHeader' d'un tableau JTable
    Bonjour.

    Il s'agit des entêtes de colonnes d'un tableau JTable inséré dans le viewportView d'un enclosing JScrollPane. Comment les éliminer pour qu'elles ne paraissent plus ni dans le tableau, ni dans le scroll pane ?

    Je n'utilise donc pas 'configureEnclosingScrollPane()', pour éviter que le 'tableHeader' de l'objet JTable soit passé au 'columnHeaderView' du scroll pane. Dans :
    [IMG]JTable in JScrollPane 1.jpg[/IMG]
    , le 'tableHeader' est donc resté dans le tableau. Comment l'éliminer de sorte que
    - les lignes du tableau (= viewportView du JTable) remontent d'un cran et
    - la barre d'ascenseur de droite occupe la hauteur entière du viewportView du scroll pane ?

    Un essai avec 'removeNotify()' et 'unconfigureEnclosingScrollPane()' ne m'avance pas plus.
    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
        public void removeNotify()
        {   // 'unconfigureEnclosingScrollPane()' has protected access in ...JTable.
            this.unconfigureEnclosingScrollPane();
            super.removeNotify();
        }
     
     
        protected void unconfigureEnclosingScrollPane()
        {   Container parent = tab1_jTable1.getParent();
            if (parent instanceof JViewport)
            {   Container grandParent = parent.getParent();
                if (grandParent instanceof JScrollPane)
                {   JScrollPane scrollPane = (JScrollPane)grandParent;
                    // Make certain we are the viewPort's view and not, for
                    // example, the rowHeaderView of the scrollPane -
                    // an implementor of fixed columns might do this.
                    JViewport viewport = scrollPane.getViewport();
                    if (viewport == null || viewport.getView() != this)
                    {   return;
                    }
                    scrollPane.setColumnHeaderView(null);
                }
            }
        }
    Merci d'avance pour toute réponse intéressante ...

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 263
    Par défaut
    Autre essai : Installer le tableHeader de la table comme columnHeaderView du scroll pane, et puis dans ce dernier, éliminer la ligne contenant les entêtes de colonnes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            ...
            tab1_jTable1.getTableHeader().setReorderingAllowed(false);
            tab1_jScrollPane1.setViewportView(tab1_jTable1);
            /* JComponent.addNotify() calls the protected configureEnclosingScrollPane().
             * Amongst others things, installs the table's tableHeader as the
             * columnHeaderView of the scroll pane. */
            tab1_jScrollPane1.addNotify();
            tab1_jScrollPane1.setColumnHeaderView(null);
    Mais cette ligne des entêtes ne disparaît toujours pas.

  3. #3
    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,


    Heu... Tu veux simplement supprimer le header de ta JTable ?
    Dans ce cas tu te casses la tête pour pas grand chose :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    table.setTableHeader(null);

    a++

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 263
    Par défaut
    C'est bien cela, adiGuba.
    J'avais quoi dans les yeux, lorsque j'ai parcouru la liste des méthode de JTable dans http://download.oracle.com/javase/6/docs/api/ ? La programmation aussi, faut pas abuser ...
    Merci bien.

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

Discussions similaires

  1. [Tableaux] Eliminer les doublons d'un tableau de tableau
    Par dirty_harry dans le forum Langage
    Réponses: 5
    Dernier message: 25/05/2009, 15h57
  2. Imprimer un tableau JTable
    Par cotede2 dans le forum Composants
    Réponses: 2
    Dernier message: 24/04/2009, 11h44
  3. eliminer les doublons d'un tableau
    Par wided_instm dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 22/09/2006, 11h56
  4. Eliminer les doublons dans un tableau d'entiers
    Par engi dans le forum Algorithmes et structures de données
    Réponses: 18
    Dernier message: 21/03/2006, 14h59
  5. Eliminer les doublons d'un tableau de hachage
    Par dreydrey dans le forum Langage
    Réponses: 21
    Dernier message: 15/11/2005, 16h03

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