Como chamar o método paint de dentro de um botão?

Bom pessoal, quero chamar o método paint quando eu clico no botão “gerar gráfico”. Como eu faço pois eu tentei fazer dentro do método do botão só o comanado “paint();” e não dá certo. Me ajudem, tá aí o códido para vocês darem uma olhada… Ok… Agradeço desde já.

import java.awt.*;
import java.awt.event.*;
import java.applet.*;

public class Graficobarras extends Applet implements ActionListener
{
    int i,cor,qtdbarra,count;
    TextField barras = new TextField (5); //quantidade de barras que o gráfico vai ter
    TextField valorbarra = new TextField(5); //entrada dos valores
    Button qtdbarras = new Button();
    Button valorbarrasx=new Button();
    Button gerargrafico=new Button();
    int []vForma;
            
    public void actionPerformed (ActionEvent e)
    {
    	String buttonCommand = e.getActionCommand();
    	if (buttonCommand.equals("Qtde de Barras"))
		{
			qtdbarra = Integer.parseInt(barras.getText());
			i=qtdbarra;
			vForma = new int [qtdbarra];
			barras.setEnabled (false);
			qtdbarras.setEnabled (false);
			valorbarrasx.setEnabled (true);
			valorbarra.setEnabled (true);
		}
  	  	
  	  	if (buttonCommand.equals("Valores das Barras"))
		{	
			i=0;
			if (count<=qtdbarra)
			{
				vForma[i] = Integer.parseInt(valorbarra.getText());
				i++;
				valorbarra.setText("");
			}
			count++;
			if (count==qtdbarra)
			{
				valorbarra.setEnabled (false);
				valorbarrasx.setEnabled (false);
				gerargrafico.setEnabled (true);
			}			
		}
		if (buttonCommand.equals("Gerar Grafico"))
		{		
		  paint();	
		}
    } 
    	
	public void init()
    {
       	Label l1 = new Label("Quantidade de Barras:");
       	add(l1);
       	
       	add(barras); //adiciona o TextField da quantidade de barras
        
        qtdbarras.setLabel("Qtde de Barras"); //label do botão da quantidade de barras que o gráfico vai ter
        add(qtdbarras);//adiciona o botão da quantidade de barras
        qtdbarras.addActionListener(this);
              
        Label l2 = new Label ("Digite os valores das barras:");
        add(l2);
        
        add(valorbarra); //adiciona o TextField dos valores
       	
       	valorbarrasx.setLabel("Valores das Barras");
        add(valorbarrasx); ////adiciona o botão da quantidade de valores do gráfico
        valorbarrasx.addActionListener(this);
        
        //adiciona o botão para gerar o gráfico.
       	gerargrafico.setLabel("Gerar Grafico");
        add(gerargrafico);
        gerargrafico.addActionListener(this);
               
        count=0;
        
        valorbarra.setEnabled (false);
		valorbarrasx.setEnabled (false);
		gerargrafico.setEnabled (false);
    }
    public void paint(Graphics g)
    {
        g.setColor(Color.white);
        g.fillRect(0, 0, 300, 400);
        for(i=0; i<=qtdbarra; i++)
       	{
       		cor=(int)(Math.random()*16000000);
       		g.setColor (new Color(cor));
      		g.fillRect (i,i,25,vForma[i]);
      	}
    }  	    	    
}

não manjo muito de applet, mas se naum me engano, quando tem esse tipo de caso vc tem que usar o método repaint(), que parece que ele invoca o paint() e o refresh(), não necessáriamente nessa ordem…

Valeu… Eu pensei nesse rapint…rsrs

Olá a todos,

Com JPanel, também se utiliza repaint();

atenciosamente