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 79 80 81 82 83 84
| package principal;
import java.awt.AWTException;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Point;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;
@SuppressWarnings("serial")
public class ImgP1 extends JPanel implements MouseMotionListener{
int x =207;
int y =158;
Robot robot;
Image fond;
public ImgP1() {
setSize(586,431);
try {
fond = ImageIO.read(new File("popo.bmp")); /** Image de fond */
Image star = ImageIO.read(new File("patate.gif")); /** Image en curseur */
Toolkit tk = Toolkit.getDefaultToolkit();
Cursor monCurseur = tk.createCustomCursor(star, new Point(16, 16), "souris");
setCursor(monCurseur);
}
catch(IOException ee) {}
addMouseMotionListener(this);
try {
robot = new Robot();
robot.setAutoDelay(0); /** vitesse deplacement */
robot.setAutoWaitForIdle(false);
robot.mouseMove(400,800); /** position curseur au départ */
}
catch(AWTException ee){}
}
/** PIXELS NOIRS */
public void mouseMoved(MouseEvent e) {
if (!robot.getPixelColor(e.getX(),e.getY()).equals(Color.white)) { /** le curseur doit rester dans la partie blanche */
robot.mouseMove(x, y);
/** SON */
Thread playWave=new Son("prout.wav"); /** déclenche un son si les pixels ne sont pas blancs */
playWave.start();
}
else {
x = e.getX();
y = e.getY();
}
}
public void mouseDragged(MouseEvent e) {
}
/** FENETRE */
public static void main(String[] args) {
JFrame f = new JFrame();
f.setSize(1024,768);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ImgP1 rob = new ImgP1();
f.add(rob,BorderLayout.CENTER);
f.setVisible(true);
}
public void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g.create();
g2.drawImage(fond,0,0,null);
}
} |
Partager