Reutilizacao de Classes

1 resposta
O

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);
		
	}
}

1 Resposta

E

De modo geral, não é boa idéia pôr entrada de dados no construtor.

Criado 23 de novembro de 2010
Ultima resposta 24 de nov. de 2010
Respostas 1
Participantes 2