Bonjour, voilà j'ai un petit soucis, je repousse le problème, mais y a bien un moment où il va falloir que j'y fasse face :/
Donc j'ai une frame avec un jsplitpane en composant principale, dans ce jsplitpane, à droite j'ai un jlabel qui contient un GLCanvas et à gauche un jpanel qui contient une série de jbutton, jtogglebutton et jlabel, organisés sur 4 colonnes et 13 lignes avec un gridbaglayout.
Donc forcément ça prend de la place, et quand je réduis la fenêtre (veticalement, horizontalement j'ai pas de problèmes), les composants du jpanel se superposent et ça ressemble plus à rien. Ce que je voudrais faire ça serait bloquer la taille du jpanel et quand son conteneur (le jsplitpane, enfin on peut même dire la frame vu qu'il n'y a que lui à ce niveau) devient plus petit que lui en hauteur, ben j'ai une scrollbar verticale plutôt que ma mise en page qui part en vrille :/
On pourrait résumer le code à ça (un poil simplifié pour éviter d'en mettre 12 pages) :
J'ai regardé pas mal de trucs, et j'en ai testé pas mal aussi, JScrollPane dans lequel je mets mon JPanel, pas moyen de faire un scrolling vertical, alors que le horizontal passe tout seul ><, et j'ai aussi vaguement tenté de mettre directement une scrollbar au jPanel, mais bon, j'ai un peu de mal avec les scrollbar :/
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 this.setJMenuBar(getJJMenuBar()); this.setContentPane(getJContentPane()); this.pack(); this.setSize(600, 374); this.setExtendedState(this.getExtendedState()|MAXIMIZED_BOTH); this.setTitle("JFrame"); this.addComponentListener(this); this.addKeyListener(this); private JPanel getJContentPane() { if (jContentPane == null) { BorderLayout borderLayout = new BorderLayout(); borderLayout.setHgap(0); borderLayout.setVgap(0); jContentPane = new JPanel(); jContentPane.setLayout(borderLayout); jContentPane.add(getJSplitPane(), BorderLayout.CENTER); } return jContentPane; } private JSplitPane getJSplitPane() { if (jSplitPane == null) { labelOpengl = new JLabel(); //labelOpengl.setText("JLabel"); //labelOpengl.setMinimumSize(new Dimension(480,374)); labelOpengl.setMinimumSize(new Dimension(this.getWidth()-180,jContentPane.getHeight())); jSplitPane = new JSplitPane(); jSplitPane.setRightComponent(labelOpengl); jSplitPane.setDividerLocation(200); jSplitPane.setContinuousLayout(true); jSplitPane.setLeftComponent(getJPanel()); jSplitPane.setOneTouchExpandable(true); } return jSplitPane; } private JPanel getJPanel() { if (jPanel == null) { jPanel = new JPanel(); GridBagLayout gridbaglayout = new GridBagLayout(); jPanel.setAlignmentX(0); jPanel.setAlignmentY(0); jPanel.setLayout(gridbaglayout); jPanel.setPreferredSize(new Dimension(180,jContentPane.getHeight())); ajout des boutons et compagnie } return jPanel }
Donc si quelqu'un pouvait me dire comment je peux mettre un scrolling vertical sur mon jPanel pour que j'ai plus de problèmes de taille du contenu du jPanel, je lui en serait très reconnaissant^^
Ah oui, et si vous voulez le code complet "ajout des boutons et compagnie" pour voir si y a pas un truc qui va pas, ben j'peux le rajouter (mais bon, c'est que des gridbagconstraints avec les options pour que toi soit bien placé à la bonne taile,...)
Partager