Pessoal este código abaixo faz gerar um gráfico de barras com os seguintes detalhes: o usuário que determine o número de barras e os valores das barras. E as barras tem que ter as alturas dos valores digitados pelo usuário…
O problema é o seguinte: Não estou conseguindo gerar o gráfico com seus respectivos valores do usuário. Alguém pode me ajudar?
Bom eu só quero o método Paint (). Para gerar o gráfico com os valores que o usuário digitou… Pois não quero mudar nada da lógica do código.
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class Graficobarras extends Applet implements ActionListener
{
int i,cor,qtdbarra,count,x;
int []vForma;//inicialização do vetor sem tamanho nenhum
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(); //botão da quatidade de barras
Button valorbarrasx=new Button();//botão dos valores das barras
Button gerargrafico=new Button();//botão para gerar o gráfico
Label l2 = new Label ("Digite os valores das barras:");//label dos valores
Label l1 = new Label("Quantidade de Barras:");//label da quatidade de barras
public void actionPerformed (ActionEvent e)
{
String buttonCommand = e.getActionCommand();
if (buttonCommand.equals("Qtde de Barras"))
{
qtdbarra = Integer.parseInt(barras.getText());
//inicializando o vetor com o tamanho definido
vForma = new int [qtdbarra];
//depois que digitou o valor o textfiled fica inabilitado
barras.setEnabled (false);
//depois que entrou com o valor o botão fica inabilitado
qtdbarras.setEnabled (false);
//Habilitando o textfield dos valores das barras
valorbarrasx.setEnabled (true);
//habilitando o botão dos valores das barras
valorbarra.setEnabled (true);
count=0;//inicializa o count para condição abaixo
}
if (buttonCommand.equals("Valores das Barras"))
{
i=0;//inicializando o índice do vetor
if (count<=qtdbarra)//inserindo os valores das barras no vetor
{
vForma[i] = Integer.parseInt(valorbarra.getText());
i++;
valorbarra.setText("");
}
count++;
//condição de parada depois que o vetor está preenchido
if (count==qtdbarra)
{
valorbarra.setEnabled (false);//desabilitando o textfield dos valores
valorbarrasx.setEnabled (false);//desabilitando o botão dos valores
gerargrafico.setEnabled (true);//habilitando o botão de gerar gráfico
}
}
if (buttonCommand.equals("Gerar Grafico"))
{
repaint();
}
}
public void init()
{
//adicionando label da quatidade de barras
add(l1);
add(barras); //adiciona o TextField da quantidade de barras
//adiciona o botão da quantidade de barras
qtdbarras.setLabel("Qtde de Barras");
add(qtdbarras);
qtdbarras.addActionListener(this);
add(l2); //adicionando label dos valores das barras
add(valorbarra); //adiciona o TextField dos valores
//adiciona o botão da quantidade de valores do gráfico
valorbarrasx.setLabel("Valores das Barras");
add(valorbarrasx);
valorbarrasx.addActionListener(this);
//adiciona o botão para gerar o gráfico.
gerargrafico.setLabel("Gerar Grafico");
add(gerargrafico);
gerargrafico.addActionListener(this);
valorbarra.setEnabled (false);//desabilita o textfield do valores das barras
valorbarrasx.setEnabled (false);//desabilita o botão do valores das barras
gerargrafico.setEnabled (false);//desabilita o botão gerar gráfico
}
public void paint (Graphics g)
{
g.setColor (Color.black);
g.drawLine (0,550, 0,0); //linha da esquerda
g.drawLine (0,549, 5000,550);//linha de baixo
g.drawLine (899,550, 899,0);//linha da direita
for (x=0;x<=qtdbarra;x++)
{
cor = (int) (Math.random() * 16000000);
g.fillRect(i,549,25,vForma[i]);
}
}
}
Código do HTML para chamar o Applet
<html>
<head>
<title>Aula de Applet Java </title>
</head>
<body>
<applet code="Graficobarras.class" width=900 height=550>
</applet>
</body>
</html>
Bom pra quem me ajudar tá em anexo os códigos do HTML e o Applet para ficar mais fácil… ok…
Agradeço desde já…