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
| public class Demo extends JPanel {
private final Image imageOff;
private final Image imageOn;
private final Shape shape;
private int x;
private int y;
public Demo() throws IOException {
imageOff = ImageIO.read(Demo.class.getResource("off.png"));
imageOn = ImageIO.read(Demo.class.getResource("on.png"));
shape = new Ellipse2D.Double(-30, -30, 60, 60);
addMouseMotionListener(new MouseAdapter() {
@Override
public void mouseMoved(MouseEvent e) {
x = e.getX();
y = e.getY();
repaint();
}
});
}
@Override
protected void paintComponent(Graphics g) {
g.drawImage(imageOff, 0, 0, getWidth(), getHeight(), this);
g.setClip(AffineTransform.getTranslateInstance(x, y).createTransformedShape(shape));
g.drawImage(imageOn, 0, 0, getWidth(), getHeight(), this);
}
public static void main(String[] args) {
try {
run();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void run() throws IOException {
JFrame demo = new JFrame("Démo");
demo.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
demo.add( new Demo() );
demo.setSize(400,400);
demo.setLocationRelativeTo(null);
demo.setVisible(true);
}
} |
Partager