Bonjour à tous !

Je travaille sur une IHM développée en awt/swing qui consiste en un écran de visualisation à droite et plusieurs panneaux de menus rétractables à gauche. Ces derniers sont chacun des JPanel et l'ensemble est encapsulé dans un autre JPanel appelé SideBar, lui même dans un autre JPanel appelé alignPanel.

A l'origine, j'avais donc simplement ma MainFrame (JFrame) dans laquelle étaient ajoutés les deux éléments :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
add(scroll, BorderLayout.WEST);
add(ecran, BorderLayout.CENTER);
Enfin, un bouton permet de passer en mode "plein écran", c'est-à-dire que la sidebar de gauche disparait et l'écran de droite remplit tout l'espace. Ceci est basiquement géré par :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
    public void fullScreenOn()
    {
        sideBar.setVisible(false);
    }
 
    public void fullScreenOff()
    {
        sideBar.setVisible(true);
    }
Mon souci est apparu lorsque j'ai décidé de rajouter une scrollbar sur la sidebar pour améliorer l'utilisation. Celle-ci se révèle en effet incompatible avec le mode plein écran : l'ensemble (sidebar + scrollbar) disparaît bien, mais son emplacement reste visible et l'écran de droite ne bouge pas.

Voici le code de la mainFrame :
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
/*
 * MainFrame.java
 *
 * Created on 15 mai 2007, 14:55
 *
 */
 
{...}
 
public class MainFrame extends JFrame
{
 
{...}
 
    // -------------------------------------------------------------------------
    // ATTRIBUTES
    // -------------------------------------------------------------------------
    private GLPPI ppi;
 
    private Toolbar toolbar;
 
    private Sidebar sideBar;
 
    private JMenuBar menuBar;
 
    private JScrollPane scroll;
 
    private JPanel alignPanel;
 
    // -------------------------------------------------------------------------
    //  CONSTRUCTOR & INIT
    // -------------------------------------------------------------------------
    /**
     * Default constructor.
     */
    private MainFrame()
    {
        super("IHM");
    }
 
    public static MainFrame getInstance()
    {
        if (s_instance == null)
        {
            s_instance = new MainFrame();
        }
        return s_instance;
    }
 
    public void init()
    {
        setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
 
        addWindowListener(new WindowAdapter()
        {
 
            public void windowClosing(WindowEvent e)
            {
                EGlobalActions.EXIT_ACTION.getAction().actionPerformed(null);
            }
        });
 
        setIconImage(ImageManager.getInstance().getImage("iconentourage.png"));
 
        initComponents();
        initMenus();
 
 
 
        LayerManager.getInstance().init();
 
        pack();
        setExtendedState(JFrame.MAXIMIZED_BOTH);
 
        pack();
    }
 
    // -------------------------------------------------------------------------
    //  ACCESS METHODS
    // -------------------------------------------------------------------------
 
{...}
 
    /**
     * Retrieves toolbar associated to the MainFrame.
     * @return the associated toolbar
     */
    public Toolbar getToolBar()
    {
        return toolbar;
    }
 
    // -------------------------------------------------------------------------
    // METHODS
    // -------------------------------------------------------------------------
    private void initComponents()
    {
        setLayout(new BorderLayout(4, 0));
 
{...}
 
        // Creates full swing components
        toolbar = new Toolbar();
        sideBar = new Sidebar();
        add(toolbar, BorderLayout.NORTH);
        alignPanel = new JPanel(new BorderLayout());
        scroll = new JScrollPane(alignPanel);
        alignPanel.add(sideBar, BorderLayout.NORTH);
        scroll.getVerticalScrollBar().setUnitIncrement(20);
    scroll.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
        add(scroll, BorderLayout.WEST);
        add(ecran, BorderLayout.CENTER);
        add(new Statusbar(), BorderLayout.SOUTH);
    }
 
{...}
 
    public void fullScreenOn()
    {
        alignPanel.setVisible(false);
        scroll.setVisible(false);
        sideBar.setVisible(false);
    }
 
    public void fullScreenOff()
    {
        alignPanel.setVisible(true);
        scroll.setVisible(true);
        sideBar.setVisible(true);
    }
Comment faire pour que l'écran s'agrandisse comme avant? Ca n'a pas l'air spécialement compliqué, mais tout ce que j'ai essayé n'a pas marché.

Merci de votre aide!