Bonjour,
j'aimerais savoir s'il est possible, par exemple, de déclencher la expansion ou la reduction d'un JSplitPane par une action externe, comme le clic sur un bouton ou tout autre action externe au JSplitPane.
Merci d'avance
Version imprimable
Bonjour,
j'aimerais savoir s'il est possible, par exemple, de déclencher la expansion ou la reduction d'un JSplitPane par une action externe, comme le clic sur un bouton ou tout autre action externe au JSplitPane.
Merci d'avance
Bonjour,
Essaie ca :
Si c'est ce que tu voulais tant mieux ! sinon désolé !Code:
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 public class SplitMove extends JApplet { private JSplitPane split; public void init() { JPanel p1 = new JPanel(); p1.setLayout(new BorderLayout()); p1.add(new JLabel("Panneau 1"),BorderLayout.CENTER); JPanel p2 = new JPanel(); p2.setLayout(new BorderLayout()); p2.add(new JLabel("Panneau 2"),BorderLayout.CENTER); split = new JSplitPane(JSplitPane.VERTICAL_SPLIT, p1, p2); JButton max1 = new JButton("max 1"); max1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { split.setDividerLocation(1d); } } ); JButton max2 = new JButton("max 2"); max2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { split.setDividerLocation(0d); } } ); JPanel princ = new JPanel(); princ.setLayout(new BorderLayout()); princ.add(max1,BorderLayout.NORTH); princ.add(max2,BorderLayout.SOUTH); princ.add(split,BorderLayout.CENTER); this.getContentPane().add(princ); } }
qu'entend tu par exepention on reduction d'un JSplitePane ??? Dans tout les cas tu peut declancher nimporte quelle action une fois que tu a capturer l'evenement relatif a l'appuie sur un bouton par exemple ... Je comprend pas vraiment le problème essais d'etre plus clair ...
Citation:
Envoyé par NicoWrmCorp
a quoi correspond 1d ?Citation:
split.setDividerLocation(1d);
et j'attends juste de pouvoir...euh..reduire le splitPane, de faire soit apparaitre, soit disparaitre un des panneaux du splitPane par une action externe...c'est plus clair ?
1d c'est le chiffre 1 en double.
setDividerLocation(double proportion)
donc en gros :
0d c'est 0%
1d c'est 100%
Le code que je viens de t'envoyer réduit un panneau et forcément maximise l'autre.
Si tu ne souhaite pas une réduction totale : setDividerLocation peut aussi prendre un int et dans ce cas c'est en pixel qu'il faut préciser.
Alors il te suffit de mettre un listener sur ton bouton, puis qquand tu click sur le bouton tu n'a plus qu'a faire comme te le suggère NicoWrmCorp split.setDividerLocation(1d); ou split.setDividerLocation(0d); suivant le pant du JSplitePane que tu souhaite afficher
++
bah nickel alors...c'est ce que je voulais
et sinon...comment faire en sorte que le JSplitPane ne "marche" pas quand on veut clicker dessus...
genre qu'on ne puisse pas modifier la taille des panneaux via la JSplitPane mais uniquement via le bouton justement:mouarf:
Par rapport au code de tout à l'heure : tu ajoute ca :
Code:
1
2 split.setEnabled(false);
si c'est pas terrible...Citation:
Envoyé par NicoWrmCorp
c'est que ca me donnerait presque une application macEsque:mrgreen:
merci bcp
alors je reviens sur le sujet...parce que y a un truc qui me chamboule :mrgreen:
le :
si je passe en argument 1d, ca va mettre le panneau du haut a 100%...donc faire "disparaitre" celui du bas ?Code:setDividerLocation(double d)
mais ensuite, je veux en fait, sur l'action du bouton, faire réapparaitre le panneau du bas, or, si je passe en argument 0d, ca va faire disparaitre le panneau du haut non ?
ensuite encore une question, comment faire en sorte que le Panel occupe l'espace maximum, parce que la pour l'instant les panel qui sont dans mon JSplitPane n'occupe pas l'espace...il ne s'étire pas a l'intérieur du splitPane...
voila...je pense que j'ai posé mes questions...si c'est pas assez clair...n'hesitez pas:mrgreen:
Tu peux commencer par mettre 0.5d pour le départ (moitié, moitié pas de jaloux !).
1d ou 0d va effectivement faire disparaitre l'un ou l'autre de tes panneaux.
Si tu as bien un Layout non null dans tes panneaux, ils devraient d'étirer normalement. Sinon place les dans des JScrollPane et les JScrollPane dans le split ca devrait faire ton affaire .... à essayer ...
le truc c'est que le panneau du bas a une taille fixe...et qu'il n'apparait que de tps en tps...au depart il doit etre caché, lors d'une action, il doit apparaitre et puis se recacher après clic sur un bouton contenu dans ce meme paneau (c'est un peu une popup cachée en gros)Citation:
Envoyé par NicoWrmCorp
donc le moit' / moit' c'est pas trop possible au pire faut que je fixe la hauteur, non ?
et mes panneaux contenuent dans le SplitPane ont des GridBagLayout et quand ils sont en dehors du SpliePane, ils prennent tous l'espace, une fois dedans...il ne s'étire pas :(
j'ai un soucis...j'ai bien compris le principe pour réduire ou pas le JSplitPane, MAIS, a l'initialisation impossible de réduire la zone inférieure du JSplitPane...ca marche dans l'action de bouton...mais a l'initialisation ranafaire...je pige pÔ :( et vous ?:mrgreen: