Invocar um método a partir do médoto paint no Applet

0 respostas
P

Oi pessoal,

estou no cap. 6 - métodos, do livro java como programar 4.ed, e há um exercício em que estou travado. O exercício pede para para criar um método que exiba um quadrado de asteriscos (criei abaixo no cod. quadradoAst() ) e que incorpore esse método a um applet simples no qual o usuário digita o valor para o tamanho do quadrado.

Então pede-se para invocar o método criado a partir do método paint() do applet. O que eu não sei é exatamente fazer isso. Já fiz várias tentativas modificando o código e as classes usadas, mas o método paint() sobrepõe o método init() onde coloco os componentes GUI.

A pergunta é: como faço para chamar o método quadradoAst() a partir do método paint, mas só fazê-lo depois que o usuário digitar o tamanho do quadrado no método start() ? Qualquer outra idéia de fazer isso também é válida. O código incompleto está abaixo.

Agradeço qualquer ajuda.

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class QuadradoAsteriscos extends JApplet {

   int tamanho;
	
   JLabel tamLabel;
   JTextField tamField;

   public void init() 
   {		
       Container container = getContentPane();
       container.setLayout( new FlowLayout() );
	
       tamLabel = new JLabel("Tamanho do quadrado");
       container.add( tamLabel );
       tamField = new JTextField( 10 );
       // tamField.addActionListener( this );
       container.add( tamField );
   }

   public void start() 
   {
       tamanho = Integer.parseInt( tamField.getText() );
    }
	
    public void paint( Graphics g )
    {
          quadradoAst( tamanho, g );
     }
	
     public String quadradoAst ( int lado, Graphics g ) 
    {
         String quad = "";
          for ( int cont1 = lado; cont1 >= 1; --cont1 ) 
         {
              for ( int cont2 = lado; cont2 >= 1; --cont2 )
                 quad += "*";

              quad += "\n";
          }
          return quad;
          }
}
Criado 23 de julho de 2005
Respostas 0
Participantes 1