package javacodebook.media.graphic.transform;

import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;

/**
 * Verschieben des Koordinatensystems zum Zeichnen.
 */
public class TranslatingPanel extends javax.swing.JPanel {

    public void paintComponent(Graphics graphics) {
        super.paintComponent(graphics);
        //Das Graphics-Objekt in ein Graphics2D-Objekt casten, das es ja auch ist
        Graphics2D g = (Graphics2D)graphics;
        //Den Nullpunkt in die Mitte verschieben
        g.translate(getWidth()/2,getHeight()/2);
        //Ein Rechteck um den Mittelpunkt herum zeichnen
        g.draw(new Rectangle2D.Double(-25,-25, 50,50));
    }

    public Dimension getPreferredSize() {
        return new Dimension(200,200);
    }

    public static void main(String[] args) {
        JFrame f = new JFrame();
        f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        f.getContentPane().setLayout(new BorderLayout());
        f.getContentPane().add(new TranslatingPanel());
        f.pack();
        f.show();
    }
}
