package javaswing;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import javax.swing.Box;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
/**
*
* @web http://java-buddy.blogspot.com/
*/
public class JavaTestSwing {
static JFrameWin jFrameWindow;
public static class MyComponent extends JComponent{
Dimension myDimension = new Dimension(500, 500);
@Override
public Dimension getPreferredSize() {
return myDimension;
}
@Override
public Dimension getMaximumSize() {
return myDimension;
}
@Override
public Dimension getMinimumSize() {
return myDimension;
}
@Override
protected void paintComponent(Graphics g) {
//fill background
g.setColor(Color.gray);
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(Color.darkGray);
g.fillRect(50, 50, 150, 150);
//rotate about 0, 0
Graphics2D graphics2D = (Graphics2D)g.create();
graphics2D.rotate(Math.toRadians(45));
graphics2D.setColor(Color.red);
graphics2D.fillRect(50, 50, 150, 150);
//rotate about 100, 100
graphics2D = (Graphics2D)g.create();
graphics2D.rotate(Math.toRadians(45), 100, 100);
graphics2D.setColor(Color.blue);
graphics2D.fillRect(50, 50, 150, 150);
//dispose Graphics2D object
graphics2D.dispose();
}
}
public static class JFrameWin extends JFrame{
public JFrameWin(){
this.setTitle("java-buddy.blogspot.com");
this.setSize(500, 500);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
MyComponent myComponent = new MyComponent();
Box horizontalBox = Box.createHorizontalBox();
horizontalBox.add(myComponent);
this.add(horizontalBox);
}
}
public static void main(String[] args){
Runnable doSwingLater = new Runnable(){
public void run() {
jFrameWindow = new JFrameWin();
jFrameWindow.setVisible(true);
}
};
SwingUtilities.invokeLater(doSwingLater);
}
}
Wednesday, October 17, 2012
Create and rotate Graphics2D object
In this example, we create a new Graphics2D object (graphics2D) from original Graphics object (g), by calling it's create() method. Then rotate the Graphics2D object, by calling its rotate() method. After used, dispose it.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment