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,
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 : 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 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); } }
Envoyé par NicoWrmCorp
a quoi correspond 1d ?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![]()
Par rapport au code de tout à l'heure : tu ajoute ca :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 split.setEnabled(false);
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 ...
Partager