Boa noite Pessoal, estou tentando fazer de um modo que a classe abaixo seja reutilizavel por outra classe tipo quando clicar em um botão ela executar e pedir que o usuário insira os valores dentro do laço (for) mas nem sei se o laço precisa tar no construtor do metodo ou insiro ele quando referenciar esta classe. Já tentei instanciar esse metodo paintComponent(Graphics g) que constroi um grafico de barras mas deu alguns erros. Sera que alguem poderia me ajudar, E agora?
import javax.swing.*;
import java.awt.*;
public class GraficoBarras extends Desenhos
{
static int A[]=new int[6];
String a;
public GraficoBarras()
{
for(int i=0;i<=5;i++)
{
try
{
a= JOptionPane.showInputDialog("Faturamento do mes "+(7+i)+" =");
A[i] = Integer.parseInt(a);
A[i] /=200;
this.A=A;
}
catch(NumberFormatException e)
{
JOptionPane.showMessageDialog(null,"Digite apenas numeros !","Erro",-1);
System.exit(0);
}
}
Painel7 p = new Painel7();
p.setBounds(100,50,400,300);
p.setBorder(BorderFactory.createLineBorder(Color.black,2));
getContentPane().setLayout(null);
getContentPane().add(p);
}
public static void main (String arg[])
{
JFrame fx = new GraficoBarras();
fx.setVisible(true);
}
}
class Painel7 extends JPanel
{
int A[] = new int[6];
public void paintComponent(Graphics g)
{
A[0] = GraficoBarras.A[0] ; // Variavel array que recebe 1º valor da classe GraficoBarras
Graphics2D g2 = (Graphics2D)g ;
Font f = new Font("TimesRoman",Font.PLAIN,12);
g2.setFont(f);
g2.setColor(Color.orange); // Cor de fundo
g2.fillRect(10,10,380,280); /* Metodo fillRect que ocupa o objeto com uma cor
fechando o fundo do objeto, nesse caso o Painel acima*/
A[0] = GraficoBarras.A[0];
g2.setColor(Color.black); //1ª barra vertical
g2.draw3DRect(70,50+(200-A[0]),18,A[0],true);
g2.setColor(Color.white);
g2.fill3DRect(70,50+(200-A[0]),18,A[0],true);
A[1] = GraficoBarras.A[1];
g2.setColor(Color.black); //2ª barra vertical
g2.draw3DRect(120,50+(200-A[1]),18,A[1],true);
g2.setColor(Color.green);
g2.fill3DRect(120,50+(200-A[1]),18,A[1],true);
A[2] = GraficoBarras.A[2];
g2.setColor(Color.black); //3ª barra vertical
g2.draw3DRect(170,50+(200-A[2]),18,A[2],true);
g2.setColor(Color.blue);
g2.fill3DRect(170,50+(200-A[2]),18,A[2],true);
A[3] = GraficoBarras.A[3];
g2.setColor(Color.black); //4ª barra vertical
g2.draw3DRect(220,50+(200-A[3]),18,A[3],true);
g2.setColor(Color.yellow);
g2.fill3DRect(220,50+(200-A[3]),18,A[3],true);
A[4] = GraficoBarras.A[4];
g2.setColor(Color.black); //5ª barra vertical
g2.draw3DRect(270,50+(200-A[4]),18,A[4],true);
g2.setColor(Color.red);
g2.fill3DRect(270,50+(200-A[4]),18,A[4],true);
A[5] = GraficoBarras.A[5];
g2.setColor(Color.black); //6ª barra vertical
g2.draw3DRect(320,50+(200-A[5]),18,A[5],true);
g2.setColor(Color.cyan);
g2.fill3DRect(320,50+(200-A[5]),18,A[5],true);
g2.setColor(Color.black);
g2.drawLine(45,250,370,250);// linha horizontal
g2.drawLine(45,250,45,40);
g2.drawLine(40,200,50,200); // marcas do eixo vertical
g2.drawLine(40,150,50,150);
g2.drawLine(40,100,50,100);
g2.drawLine(40,50,50,50);
g2.drawString("07",75,265); // configura o eixo horizontal
g2.drawString("08",125,265);
g2.drawString("09",175,265);
g2.drawString("10",225,265);
g2.drawString("11",275,265);
g2.drawString("12",325,265);
g2.drawString("meses",355,260); // unidade do eixo horizontal
g2.drawString("0",30,255); //configura o eixo vertical
g2.drawString("10",30,205);
g2.drawString("20",30,155);
g2.drawString("30",30,105);
g2.drawString("40",30,55);
g2.drawString("Uss",25,28); //unidade do eixo vertical
g2.drawString("x 1.000",25,38);
Font f2 = new Font("TimesRoman",Font.PLAIN,20);
g2.setFont(f2);
g2.drawString("Faturamento Mensal",120,30);
}
}