Gerando gráficos de pizza em Java com jFreeChart
Gerar gráficos em Java para dar um “plus” na sua aplicação é uma tarefa que tem se tornado trivial, a menos é claro que você goste de sofrer e prefira utilizar o Graphics da API Java. Utilizando o jFreeChart é possível gerar gráficos complexos de forma intuitiva.
O primeiro passo é acessar o site oficial e baixar a última versão do jFreeChart, agora é só descompactar para alguma pasta dentro do seu computador (o ideal é que seja descompactado para dentro do seu Classpath) e depois inserir dois arquivos na biblioteca do seu projeto: o jcommon-1.0.13.jar e o jfreechart-1.0.10.jar (eu utilizei a versão 1.0.10 do jFreeChart).
Com tudo pronto iremos ao código para gerar um gráfico de pizza de forma simples, crie uma classe chamada Grafico e dentro dela crie os métodos:
private static javax.swing.JPanel pizza3D(ArrayList nome, ArrayList valor,
String tituloGrafico, float transparencia, String tipo){
DefaultPieDataset data = new DefaultPieDataset();
for(int i = 0; i < nome.toArray().length; i++){
data.setValue("" + nome.get(i).toString(),
new Double(valor.get(i).toString()));
}
JFreeChart chart = ChartFactory.createPieChart3D (tituloGrafico,
data, true, true, true);
java.awt.Color cor = new java.awt.Color(200, 200, 200);
chart.setBackgroundPaint(cor);
PiePlot3D plot = (PiePlot3D) chart.getPlot();
plot.setLabelLinksVisible(true);
plot.setNoDataMessage("Não existem dados para serem exibidos " +
no gráfico");
plot.setStartAngle(90);
plot.setDirection(Rotation.CLOCKWISE);
plot.setForegroundAlpha(transparencia);
plot.setInteriorGap(0.20);
ChartPanel chartPanel = new ChartPanel(chart);
return chartPanel;
}
e
public static javax.swing.JPanel pizza3DStatic(ArrayList nome, ArrayList
valor, String tituloGrafico){
return pizza3D(nome, valor, tituloGrafico, 0.5f, "Static");
}
Agora utilize um construtor da seguinte forma:
public Grafico(){
}
Agora está acabando, a classe Grafico é a responsável por realmente “gerar” o gráfico, é essa classe que fará o trabalho pesado da sua aplicação.
Vamos então criar a classe Main que irá iniciar a aplicação e enviar os dados chamando o método da Classe Grafico e finalmente gerar o gráfico:
public static void main(String[] args) {
ArrayList nomes = new ArrayList();
ArrayList valores = new ArrayList();
JPanel painel = new JPanel();
JFrame frame = new JFrame();
ScrollPane scroll = new ScrollPane(1);
for(int i = 0; i < 5; i++){
nomes.add("Nome" + i);
valores.add(5 + i);
}
painel.add(Grafico.pizza3DStatic(nomes, valores,
"Título do Gráfico"));
scroll.add(painel);
frame.getContentPane().add(scroll);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.setTitle("Título Geral");
frame.setPreferredSize(new Dimension(750, 520));
frame.pack();
frame.setVisible(true);
}
public Main() {
super();
}
O código acima irá popular os dois ArrayList responsáveis pelos nomes e valores que irão compor o gráfico e em seguida amarrar o jPanel gerado pelo gráfico em um jFrame com um jScrool para permitir a exibição do mesmo.
Como a API jFreeChart é muito intuitiva o processo para trabalhar com outros tipos de gráfico, em breve irei mostrar como é simples gerar também gráficos de barras e linha.
Descubra mais sobre ViamaisBLOG
Assine para receber nossas notícias mais recentes por e-mail.