import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Ellipse2D; //Only import the outer class.
import javax.swing.JComponent;
public class EllipseComponent extends JComponent
{
public void paintComponent(Graphics g)
{
//RecoverGraphics2D
Graphics2D g2 = (Graphics2D) g;
//Ellipse2D.Double is an inner class of Ellipse2D.
Ellipse2D.Double ellipse = new Ellipse2D.Double(5, 10, 100 ,30);
g2.draw(ellipse);
//Circle: Ellipse2D.Double circle = new Ellipse2D.Double(5, 10, 100 ,100); // g2.draw(circle);}
}
import javax.swing.JFrame;
public class EllipseViewer
{
public static void main(String[] args)
{
JFrame frame = new JFrame();
frame.setSize(300, 400);
frame.setTitle("Ellipse");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
EllipseComponent component = new EllipseComponent();
frame.add(component);
frame.setVisible(true);
}
}

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Ellipse2D;
import javax.swing.JComponent;
public class EllipseComponent extends JComponent
{
public void paintComponent(Graphics g)
{
//RecoverGraphics2D
Graphics2D g2 = (Graphics2D) g;
Ellipse2D.Double ellipse = new Ellipse2D.Double(5, 10, 100 ,100);
g2.setColor(Color.RED);
g2.draw(ellipse);
}
}
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Ellipse2D;
import javax.swing.JComponent;
public class EllipseComponent extends JComponent
{
public void paintComponent(Graphics g)
{
//RecoverGraphics2D
Graphics2D g2 = (Graphics2D) g;
Ellipse2D.Double ellipse = new Ellipse2D.Double(5, 10, 100 ,100);
g2.setColor(Color.RED);
g2.draw(ellipse);
g2.setColor(Color.YELLOW);
g2.fill(ellipse);
}
}