import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Polygon;
import java.awt.geom.AffineTransform;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class TransformDemo {
private Polygon s = new Polygon(new int[]{0,100,100,0}, new int[]{0, 0, 100, 100}, 4);
public TransformDemo(){
JFrame frame = new JFrame();
JPanel panel = new JPanel(){
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.fillPolygon(s);
//demo:
g.setColor(Color.RED);
g.drawString("hallo", 10, 10);
Graphics2D g2d = (Graphics2D) g;
AffineTransform at = new AffineTransform();
at.translate(100, 0); //verschiebe auf x achse um 100
at.rotate(Math.toRadians(45)); //rotiere um 45 grad
g2d.setTransform(at); // <---
g.fillPolygon(s);
g.setColor(Color.BLACK);
g.drawString("hallo", 10, 10);
}
};
frame.add(panel);
frame.setSize(200, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new TransformDemo();
}
});
}
}