[Java] MouseEntered - coordonnées

Fermé
JavaStunt - 24 avril 2007 à 11:38
 JavaStunt - 25 avril 2007 à 16:28
Bonjour,

Je vous explique mon problème.

J'ai déja définis des MouseListener sur une image.
En fonction des coordonnées du point cliqué, le prog ouvre telle ou telle page. (cas MousseClicked).

Mon but est de mettre des écouteurs de passage de souris.
Lorsque la souris passe sur tel ou tel point, le point se colore...

le problème est que , bein on peut pas mettre des mouselistener sur des pixels précis, et que le mettre le mouseListener sur l'image, ca marche pas vraiemnt xD.


Je voudrais savoir si vous avez des idées concernant ce problème.

Si il est possible de définir un bouton virtuel à des coordonnées précises?

Ou alors est il possible de définir un mouseListener sur plusieurs jeux de coordonnées?


Si vous avez une solution même différente je suis preneur.

En vous remerciant ;)
A voir également:

2 réponses

Utilisateur anonyme
25 avril 2007 à 12:57
Salut!

A toi d'adapter mon code


import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.GraphicsConfiguration;
import java.awt.HeadlessException;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
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 25-avr.-2007
 * Author: HackTrack
 */

public class PixelColorizer extends JFrame implements MouseListener, MouseMotionListener {
	private Container c;

	private ImagePanel imagePanel;

	public PixelColorizer() throws HeadlessException {
		super("Pixel colorizer demo");
		initializeComponent();
	}

	private void initializeComponent() {
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		c = getContentPane();
		imagePanel = new ImagePanel();
		imagePanel.addMouseListener(this);
		imagePanel.addMouseMotionListener(this);
		c.add(imagePanel);
	}

	public void mouseClicked(MouseEvent e) {
	}

	public void mousePressed(MouseEvent e) {
	}

	public void mouseReleased(MouseEvent e) {
	}

	public void mouseEntered(MouseEvent e) {
	}

	public void mouseExited(MouseEvent e) {
	}

	public void mouseDragged(MouseEvent e) {
	}

	public void mouseMoved(MouseEvent e) {
		imagePanel.setPixelCoordinate(e.getX(), e.getY());
		imagePanel.repaint();
	}

	class ImagePanel extends JPanel {
		private BufferedImage image;

		private int pixelX;

		private int pixelY;

		public ImagePanel() {
			super();
			this.initializeComponent();

		}

		private void initializeComponent() {
			try {
				image = ImageIO.read(new File("D:/test.jpg"));
			} catch (IOException e) {
				e.printStackTrace();
			}
			setPreferredSize(new Dimension(image.getWidth(), image.getHeight()));
		}

		public void setPixelCoordinate(int x, int y) {
			this.pixelX = x;
			this.pixelY = y;
		}

		public void paint(Graphics g) {
			g.drawImage(image, 0, 0, null);
			int x1 = pixelX-10;
			int y1 = pixelY-10;
			int x2 = pixelX+10;
			int y2 = pixelY+10;
			g.setColor(Color.WHITE);
			g.fillRect(x1,y1,20,20);
			g.setColor(Color.RED);
			g.drawRect(x1,y1,20,20);
		}
	}

	public static void main(String[] args) {
		PixelColorizer demo = new PixelColorizer();
		demo.pack();
		demo.setVisible(true);
	}
}



;-)
1
Merci beaucoup pour cette réponse :).

Je vais la tester dessuite
0