ImagePanel.java Source code

Java tutorial

Introduction

Here is the source code for ImagePanel.java

Source

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.geom.AffineTransform;

import javax.swing.JPanel;

class ImagePanel extends JPanel {
    int offset = 5;

    private Image image;

    private int angle;

    private int w, h;

    private AffineTransform transform;

    public ImagePanel(Image i) {
        image = i;
        w = image.getWidth(this);
        h = image.getHeight(this);
        transform = new AffineTransform();
    }

    public void paintComponent(Graphics grp) {
        Rectangle rect = this.getBounds();
        Graphics2D g2d = (Graphics2D) grp;
        transform.setToTranslation((rect.width - w) / 2, (rect.height - h) / 2);

        transform.rotate(Math.toRadians(angle), w / 2, h / 2);

        g2d.drawImage(image, transform, this);
    }

    public void rotate() {
        angle -= offset;
        if (angle <= 0) {
            angle = 360;
        }
        repaint();
    }
}