Bonjour,

Je suis perdue au milieu de mes couches..

L'idee est la suivante: je dois afficher une table (JTable) dans une JLayeredPane (necessite d avoir des couches)
L affichage du header se fait separement, car pour que la table "s etale", je la met dans un panel, qui empeche l affichage du header. Je le rajoute donc a la main.

J ai donc le code suivant

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
 
      // afficher l arbre avec une barre de defilement
     JPanel panel= new JPanel(new BorderLayout());
     panel.add(table, BorderLayout.CENTER);
     panel.add(table.getTableHeader(), BorderLayout.NORTH);
 
     scrollPane.setViewportView(scrollPanel);
 
     JLayeredPane layer = new JLayeredPane();
     layer.add(scrollPane, JLayeredPane.DEFAULT_LAYER);
     layer.setOpaque(true);
 
     // le panel que je retourne contenant la table
     JPanel returnPanel = new JPanel(new java.awt.BorderLayout());
 
     returnPanel.add(layer,BorderLayout.CENTER);
     return returnPanel;
Vous suivez? bien, je continue. Ceci marche tres bien, sauf que mon header fait partie de la scrollPane. Quand on descend le scroll, on ne le voit donc plus.

J ai donc essaye ceci

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
 
     // afficher l arbre avec une barre de defilement
     JPanel panel= new JPanel(new BorderLayout());
     panel.add(table, BorderLayout.CENTER);
 
     scrollPane.setViewportView(scrollPanel);
 
     // NOUVEAU PANEL INTERMEDIAIRE
     JPanel interPanel = new JPanel(new BorderLayout());
     interPanel.add(table.getTableHeader(), BorderLayout.NORTH);
     interPanel.add(scrollPane, BorderLayout.CENTER);
 
     JLayeredPane layer = new JLayeredPane();
     layer.add(interPanel, JLayeredPane.DEFAULT_LAYER);
     layer.setOpaque(true);
 
     // le panel que je retourne contenant la table
     JPanel returnPanel = new JPanel(new java.awt.BorderLayout());
 
     returnPanel.add(layer,BorderLayout.CENTER);
     return returnPanel;
Ce qui n affiche plus rien, que du gris

A n y rien comprendre.. en tout cas pour moi! mais vous?