Estou estudando java com ajuda de um livro. Um dos exercícios propostos é este aqui.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.text.*;
public abstract class Corrida extends JApplet implements ActionListener
{
JLabel lTempo, lResultado;
JTextField tTempo, tResultado;
JTextArea output;
JButton bTempo;
int a[] = new int[ 70 ];
int iLebre = 0, iTart = 0, x = 0, iTempo;
String display = "";
public void init()
{
Container c = getContentPane();
c.setLayout( new FlowLayout() );
lTempo = new JLabel( "Tempo" );
c.add( lTempo );
tTempo = new JTextField( 10 );
tTempo.setEditable( false );
c.add( tTempo );
lResultado = new JLabel( "Resultado" );
c.add( lResultado );
tResultado = new JTextField( 10 );
tResultado.setEditable( false );
c.add( tResultado );
bTempo = new JButton( "Round" );
bTempo.addActionListener( this );
c.add( bTempo );
output = new JTextArea( 4, 75 );
output.setFont( new Font( "Courier", Font.PLAIN, 12 ) );
c.add( output );
}
public void ActionPerformed( ActionEvent e )
{
Correr();
}
public void Correr()
{
int x = 0, y = 0;
if ( iLebre < a.length && iTart < a.length )
{
x = 1 + ( int ) ( Math.random() * 10 ); //tartaruga
switch( x )
{
case 1: case 2: case 3: case 4: case 5: //andar rapido
iTart += 3;
if( iTart > 70 )
{
iTart = 70;
a[ iTart ] += 2;
}
break;
case 6: case 7: //escorregao
iTart -= 6;
if( iTart < 1 )
{
iTart = 1;
a[ iTart ] += 2;
}
break;
case 8: case 9: case 10: //andar lento
iTart += 1;
a[ iTart ] += 2;
break;
}
y = 1 + ( int ) ( Math.random() * 10 ); //lebre
switch( y )
{
case 1: case 2: //dormindo
++a[ iLebre ];
break;
case 3: case 4: // salto grande
iLebre += 9;
if( iLebre > 70 )
{
iLebre = 70;
++a[ iLebre ];
}
break;
case 5: // escorregao grande
iLebre -= 12;
if( iLebre < 1 )
{
iLebre = 1;
++a[ iLebre ];
}
break;
case 6: case 7: case 8: // salto pequeno
iLebre += 1;
++a[ iLebre ];
break;
case 9: case 10: // escorregao pequeno
iLebre -= 2;
if( iLebre < 1 )
{ iLebre = 1;
++a[ iLebre ];
}
break;
}
}
else if( iTart >= a.length )
tResultado.setText( "A Tartaruga venceu!" );
else if( iLebre >= a.length );
tResultado.setText( "A Lebre venceu!" );
if( iTart >= a.length && iLebre >= a.length )
tResultado.setText( "Empate!" );
++iTempo;
tTempo.setText( Integer.toString( iTempo ) );
Pintar(); //imprime
output.setText( display );
a[ iTart ] = 0; //zera contadores para o print
a[ iLebre ] = 0;
}
public void Pintar()
{
display += "";
for( int i = 0; i < a.length; i++ )
{
if( a[ i ] == 1 )
display += "L";
else if( a[ i ] == 2 )
display += "T";
else
display += ".";
}
}
}
O problema é: ele compila perfeitamente, mas no momento da execução do applet ele não pode ser inicializado.
Alguém já teve algum problema parecido e pode me ajudar?

