在Ellipse2D类定义由成帧矩形定义的椭圆。您可以使用double或float值创建椭圆。使用双精度值创建椭圆时,请使用Ellipse2D.Double类。对于浮点值,您可以使用Ellipse2D.Float该类。
package org.nhooo.example.geom; import javax.swing.*; import java.awt.*; import java.awt.geom.Ellipse2D; public class DrawEllipse extends JComponent { @Override public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; g2.setPaint(Color.RED); g2.setStroke(new BasicStroke(5.0f)); g2.draw(new Ellipse2D.Double(50, 50, 250, 250)); g2.setPaint(Color.BLUE); g2.fill(new Ellipse2D.Double(10, 10, 40, 40)); g2.setPaint(Color.YELLOW); g2.fill(new Ellipse2D.Double(10, 300, 40, 40)); g2.setPaint(Color.GREEN); g2.fill(new Ellipse2D.Double(300, 300, 40, 40)); g2.setPaint(Color.ORANGE); g2.fill(new Ellipse2D.Double(300, 10, 40, 40)); } public static void main(String[] args) { JFrame frame = new JFrame("Draw Ellipse Demo"); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); frame.getContentPane().add(new DrawEllipse()); frame.pack(); frame.setSize(new Dimension(420, 400)); frame.setVisible(true); } }
这是运行代码段时得到的结果: