Mon exemple :
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
30
31
32
33
34
35
36
package test;
 
import java.awt.BorderLayout;
import javax.swing.*;
import javax.swing.table.*;
 
public class NestedScrollpanes extends JFrame {
    private static final long serialVersionUID = 1L;
 
    private TableModel getTableModel() {
        return new DefaultTableModel(new Object[] {
                "A", "B", "C", "D", "E", 
                "F", "G", "H", "I", "J", 
                "K", "L", "M", "N", "O"}, 100);
    }
 
    public NestedScrollpanes() {
        super("Test");
        JPanel rootPanel = new JPanel(new BorderLayout());
        JTabbedPane tabbedPane = new JTabbedPane();
        JScrollPane rootScrollPane = new JScrollPane(tabbedPane); // A
        JTable table = new JTable(getTableModel());
        JScrollPane tableScrollPane = new JScrollPane(table); // B
 
        getContentPane().add(rootPanel, BorderLayout.CENTER);
        rootPanel.add(rootScrollPane);
        tabbedPane.addTab("TAB", tableScrollPane);
        setSize(100, 100);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    }
 
    public static void main(String[] args) {
        new NestedScrollpanes();
    }
}
Ma question :
Dans cet exemple, j'ouvre une JFrame qui contient un JScrollPanel (A) qui contient un JTabbedPane, qui contient un JScrollPane (B) qui contient une JTable.
En fonction de la taille de ma fenêtre, des scrollbars apparaissent, mais je n'arrivent pas à controler où.
Mon objectif c'est de n'avoir des scrollbars que sur la JTable (B). Le premier JScrollPane (A) ne doit servir qu'en dernier recours (par exemple si je rajoute 7000 tabs à mon JTabbedPane).

Je sèche. Avez-vous une idée ?