Files
wscience/src/awt/Donut.java

67 lines
1.8 KiB
Java

package awt;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.geom.AffineTransform;
import java.awt.geom.Ellipse2D;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Donut extends JPanel {
private static final long serialVersionUID = -1153356523283201001L;
public void paint(Graphics g) {
super.paint(g);
Graphics2D g2 = (Graphics2D)g;
RenderingHints rh = new RenderingHints(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
rh.put(RenderingHints.KEY_RENDERING,
RenderingHints.VALUE_RENDER_QUALITY);
g2.setRenderingHints(rh);
Dimension size = getSize();
double w = size.getWidth();
double h = size.getHeight();
Ellipse2D e = new Ellipse2D.Double(0, 0, 80, 130);
g2.setStroke(new BasicStroke(1));
g2.setColor(Color.gray);
AffineTransform at =
AffineTransform.getTranslateInstance(w / 2, h / 2);
for (double deg = 0; deg < 360; deg += 5) {
at = AffineTransform.getTranslateInstance(w / 2, h / 2);
at.rotate(Math.toRadians(deg));
g2.draw(at.createTransformedShape(e));
}
Ellipse2D p = new Ellipse2D.Double(0, 0, 1, 1);
p.setFrame(200, 200, 1, 1);
g2.draw(at.createTransformedShape(p));
}
public static void main(String[] args) {
JFrame frame = new JFrame("Donut");
frame.add(new Donut());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(370, 320);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}