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 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
| package manu;
import java.awt.*;
import java.awt.geom.AffineTransform;
import java.awt.image.AffineTransformOp;
import java.awt.image.BufferedImage;
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class Map extends JFrame {
//Variables d'instance
protected JPanel maCarte;
protected Image monImage;
BufferedImage image;
JSlider curseur = new JSlider(JSlider.VERTICAL,1,3,1);
//Constructeurs
public Map() {
//Initialisation du JPanel
maCarte = new JPanel();
// Lecture de l'image par le tookit par défaut
monImage = Toolkit.getDefaultToolkit().getImage("carteIHM.jpg");
image = toBufferedImage(monImage);
//Ajout du contenu
maCarte.setLayout(new BorderLayout());
maCarte.add(new MapPane(monImage),BorderLayout.CENTER);
curseur.setMajorTickSpacing(1);
curseur.setMinorTickSpacing(1);
curseur.setPaintLabels(true);
curseur.setPaintTicks(true);
maCarte.add(curseur,BorderLayout.EAST);
curseur.addChangeListener(new ChangeListener(){
public void stateChanged(ChangeEvent e) {
JSlider curseur = (JSlider)e.getSource();
int scale = curseur.getValue();
scale(image,scale,scale);
Dimension size = new Dimension(image.getWidth()*scale, image.getHeight()*scale);
maCarte.setSize(size);
maCarte.setPreferredSize(size);
maCarte.repaint();
}});
}
//Accesseurs
public JPanel getmap() {
return maCarte;
}
public void scale(BufferedImage image, double sx,double sy) {
Graphics2D g2 = image.createGraphics();
g2.drawImage(image, 0, 0, (int)(image.getWidth()*sx), (int)(image.getHeight()*sy), null);
}
BufferedImage toBufferedImage(Image image) {
if( image instanceof BufferedImage ) {
return( (BufferedImage)image );
} else {
image = new ImageIcon(image).getImage();
BufferedImage bufferedImage = new BufferedImage(
image.getWidth(null),
image.getHeight(null),
BufferedImage.TYPE_INT_RGB );
Graphics g = bufferedImage.createGraphics();
g.drawImage(image,0,0,null);
g.dispose();
return( bufferedImage );
}
}
} |
Partager