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 ...