Estudo de caso de GUIs e imagens gráficas

Não estou detectando um erro constante do código ShapesTest.java, que é um complemento de Shapes.java.
Abaixo estou demonstrando os dois códigos:

// Shapes.java
// Demonstra o desenho de diferentes formas
import java.awt.Graphics;
import javax.swing.JPanel;

public class Shapes extends JPanel
{
private int choice; // escolha do usuário de qual forma desenhar

// construtor configura a escolha do usuário
public Shapes( int userChoice )
{
	choice = userChoice;
} // fim do construtor Shapes

// desenha uma cascata de formas que iniciam do superior esquerdo
public void paintComponent( Graphics g )
{
	super.paintComponent( g );

	for ( int i = 0; i < 10; i++ )
	{
		// seleciona a forma com base na escolha do usuário
		switch ( choice )
		{
			case 1: // desenha retângulos
				g.drawRect( 10 + i * 10, 10 + i * 10,
				    50 + i * 10, 50 + i * 10 );
				break;
			case 2: // desenha elipses
				g.drawOval( 10 + i * 10, 10 + i * 10,
				    50 + i * 10, 50 + i * 10 );
				break;
		} // fim do switch
	} // fim do for
} // fim do método paintComponent

} // fim da classe Shapes

// ShapesTest.java
// Aplicativo de teste que exibe a classe Shapes.
import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class ShapesTest
{
public static void main( String args [] )
{
// obtém a escolha do usuário
String input = JOptionPane.showInputDialog(
"Enter 1 to draw rectangles\n" +
"Enter 2 to draw ovals" );

	int choice = Integer.parseInt(  input  ); // converte a entrada em int

	// cria o painel com a entrada do usuário
	Shapes panel = new Shapes( choice );

	JFrame application = new JFrame( ); // cria um novo JFrame

	application.setDefaultCloseOperation (JFrame.EXIT ON CLOSE);
	application.add( panel ); // adiciona o painel ao frame
	application.setSize( 300, 300 ); // configura no tamanho desejado
	application.setVisible( true ); // mostra o frame
} // fim de main

} // fim da classe ShapesTest

Coloco estes códigos à disposição de quem queira me ajudar, pelo que agradeço
caas