bonjour,
je veut faire un zoom avec un JSlidser sur le contenu d'un canvas
le zoom avec 2 JSlider l'un fait le zoom sur la largeur du graph et l'autre sur la longueur
merci pour vos aides
Version imprimable
bonjour,
je veut faire un zoom avec un JSlidser sur le contenu d'un canvas
le zoom avec 2 JSlider l'un fait le zoom sur la largeur du graph et l'autre sur la longueur
merci pour vos aides
salut.
tu peux voir avec la méthode scale
Code:surface_graphique.scale(...., .....);
salut,
merci pour votre aide mais es que vous pouvez me guidé avec un exemple ou un lien pour faire ça :ccool:
salut
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 import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import javax.swing.JFrame; import javax.swing.JPanel; public class MainClass extends JPanel { public void paint(Graphics g) { g.fillRect(0, 0, 20, 20); Graphics2D g2 = (Graphics2D) g; g2.translate(50, 50); g2.rotate(30.0 * Math.PI / 180.0); g2.scale(2.0, 2.0); g.setColor(Color.red); g.fillRect(0, 0, 20, 20); } public static void main(String[] args) { JFrame frame = new JFrame(); frame.getContentPane().add(new MainClass()); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(200, 200); frame.setVisible(true); } }
salut,
merci Mr pour votre aide mais es que vous pouvez me dire comment affecté le zoom à un JSlider :ccool:
merci d'avance
tu affecte un listener sur ton Jslider et tu met dedanspar exemple
après , ton la méthode paintComponent de ton JpanelCode:
1
2
3
4 zoomx++;//il s'agit d'une augmentation d'échelle zoomy++; repaint();//pour réactualiser l'affichage de ton Jpanel
tu dois mettre cette instruction
c'est un exemple pour en inspirer l'idéeCode:
1
2 g2.scale(zoomx, zoomy);
bonsoir;
j'ai essayer votre méthode Mr mais elle ne fonctionne seulement que pour une variation du SLiderj'ai déclaré zoomx et zoomy au début mais je vois pas ou le problèmeCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 JSlider f = new JSlider(JSlider.HORIZONTAL,FPS_MIN, FPS_MAX, FPS_INIT); f.setMajorTickSpacing(10);f.setMinorTickSpacing(1);f.setPaintTicks(true);f.setPaintLabels(true); f.addChangeListener(new ChangeListener(){ public void stateChanged(ChangeEvent e){ JSlider source = (JSlider)e.getSource(); if (!source.getValueIsAdjusting()){ int fts = (int)source.getValue(); for( fts=0;fts<=10;fts++){ zoomx=zoomx+0.1; repaint(); } } } });
merci d'avance pour votre aide
A voir son code, je présume qu'il veut dire que ça ne fait que zoomer et que ça ne dézoome pas... ;)
hammasaidi, revois ton algorithme, là tu ne fais qu'augmenter le zoom quelque soit la direction du slider:
A quoi ça sert d'aller chercher la valeur du slider, si c'est pour réinitialiser fts pour la boucle ensuite?Code:
1
2
3 int fts = (int)source.getValue(); for( fts=0;fts<=10;fts++){
bonjour,
@slim java : je veut faire le zoom (in et out) sur le contenue du canvas par le JSlider
j'ai déclaré les zoomx et zoomy au début du class et j'ai l'initialise comme double zoomx=0.8;
mais lorsque je compile le contenue du canvas fait un zoom que pour une seule variation du slider puis il reste constante
@plegat: j'ai récupéré les valeurs du slider pour faire l'ajout d'une pas ou le retrait d'une pas de zoomx et de zoomy
merci d'avance Mr pous vos aides
bonsoir,
un grand merci pour vos aides Mr
mais j'ai pas arrivé de trouvé le problème
ca fonctionne mais avec la première itération du sliderCode:
1
2
3
4
5
6
7
8
9
10
11
12
13 f.addChangeListener(new ChangeListener(){ public void stateChanged(ChangeEvent e){ JSlider source = (JSlider)e.getSource(); if (!source.getValueIsAdjusting()){ int fts = (int)source.getValue(); zoomx=zoomx+fts; } repaint(); } });
merci d'avance Mr
bonjour,
merci pour tt vos aides
:ccool: le truc est résolut