|
|
|
|
Bonjour,
Je cherche une api (ou des classes) de modification d'affichage d'image en temps réel en java.
Je vais préciser :
J'ai programmé une interface graphique qui affiche des cartes.
Mon but est de rentre intéractifs certains points sur celle ci.
Pour ce faire je définis des points d'après un tableau exel contenant les coordonnées GPS des points.
Le problème c'est que les coordonnée GPS en java... ^^ c'est pas google map quoi.
Je voudrais donc trouver un moyen de :
- Définir de nouvelles coordonnées sur la carte (changer la valeur du point d'origine...).
- Définir une nouvelle échelle...
2 ° problème :
Intéragir sur la carte en effectuant des zooms !
Pour rendre plus précis l'affichage des points qui sont rapprochés.
En quelque sorte cliquer sur un "+" qui "zoome".
D'ou le changement d'échelle aussi.
Donc si vous connaissez des packages, classes seules, apis qui pouraient m'aider à avancer je vous en serais très reconnaissant :).
Merci d'avance.
Configuration: Windows XP Firefox 1.5.0.11
Pour ce qui est des classes de modifs... aucune idée.
|
En te remerciant, ca va déja bien m'aider :).
|
Voila du nouveau,
|
Re :)
|
Salut!
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.MouseWheelEvent;
import java.awt.event.MouseWheelListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;
/**
* Created on 03-mai-07
*
* @author:HackTrack
*/
public class ZoomPanel extends JPanel implements MouseWheelListener {
private BufferedImage sourceImage;
private int sourceImageWidth;
private int sourceImageHeight;
private Image scaledImage;
private double zoom = 1d;
public ZoomPanel() {
super();
initializePanel();
}
private void initializePanel() {
setPreferredSize(new Dimension(640, 480));
try {
sourceImage = ImageIO.read(new File("F:/testBG.jpg"));
sourceImageWidth = sourceImage.getWidth();
sourceImageHeight=sourceImage.getHeight();
addMouseWheelListener(this);
} catch (IOException e) {
e.printStackTrace();
}
}
public void paint(Graphics g){
int width = (int)(sourceImageWidth*zoom);
int height = (int)(sourceImageHeight*zoom);
Image img = sourceImage.getScaledInstance(width, height, Image.SCALE_SMOOTH);
g.drawImage(img,0,0,null);
}
public void mouseWheelMoved(MouseWheelEvent e) {
int wheelRotation =e.getWheelRotation();
if(zoom>1){
zoom+=wheelRotation;
}else if(zoom==1){
zoom=(wheelRotation==1?zoom+wheelRotation:0.5);
}else if(zoom<1){
zoom/=(wheelRotation*2);
}
repaint();
}
public static void main(String[] args) {
JFrame demo = new JFrame();
demo.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
demo.add(new ZoomPanel());
demo.pack();
demo.setVisible(true);
}
}
;-) HackTrack |