Je souhaite redimensionner une fenetre grace à un slider.
Le principe est assez simple : le slider va de 100 à 1000 et la taille de la fenetre s'adapte à la valeur du slider à chaque modification de la valeur du slider.
Pour redimensionner la fenetre, j'appelle directement la méthode setSize().
Mon probleme est que j'ai de très gros effets de repaint (clignotement) dès que je change la taille de la fenetre de cette manière. Or je n'ai absolument pas ce probleme si ma fenetre est redimensionné à la souris de manière "classique".
Y a-t-il une une méthode plus efficace que setSize pour redimensionner la fenetre ? quelque chose à faire en plus (ou en moins) ?
Code de ma fenetre :
merci d'avance.
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 import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JSlider; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; public class Test extends JFrame { JSlider slider ; public Test() { getContentPane().setLayout(null); JButton bouton = new JButton("OK"); getContentPane().add(bouton); bouton.setSize(100,25); bouton.setLocation(10,10); slider = new JSlider(); slider.setMaximum(1000); slider.setValue(500); slider.setMinimum(100); slider.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { setSize(slider.getValue(), slider.getValue()); } }); slider.setSize(200,20); slider.setLocation(30,80); getContentPane().add(slider); setSize(500,500); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } public static void main(String[] args) { new Test(); } }
Partager