How to create Graph/chart(Bar ,Pie , Line ) in Java

First one should use JFreeChart library and install JFreeChart and include jar file in Project
Builder(Add external Jar file).Call Function to display Graph/Chart based on Sql query that
means Data fetched from Sql query synchronized with chart/graph.
When user clicks on show chart button 3D bar chart appears. Following code executes ,it displays
3D bar chart for student's marks in particlaur Exam... 
Do not forget to import following files in your java code 

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.labels.ItemLabelAnchor;
import org.jfree.chart.labels.ItemLabelPosition;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.data.jdbc.JDBCCategoryDataset;
import org.jfree.ui.TextAnchor;

JButton btnNewButton = new JButton("Show Chart");
btnNewButton.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
try {
Connection conn=getConnection();
String query="select student_id,exam_type,subj1,COALESCE(subj1_marks)English,subj2,COALESCE(subj2_marks)Economics,subj3,COALESCE(subj3_marks)Accounts,subj4,COALESCE(subj4_marks)Bussi_Stud,subj5,COALESCE(subj5_marks)History,subj6,COALESCE(subj6_marks)Phy_Edu from sch_db.exam_entry where student_id='"+Adm_no.getText()+"' and exam_type='"+DispExam.getText()+"' ";                                                                          
JDBCCategoryDataset dataset= new JDBCCategoryDataset(conn,query); 
JFreeChart chart=ChartFactory.createBarChart3D("Exam Result","Subject","Marks",dataset,PlotOrientation.VERTICAL,true,false,false); 
final CategoryPlot p = chart.getCategoryPlot();
BarRenderer renderer=(BarRenderer)p.getRenderer();
renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());
p.setRenderer(renderer);
renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.CENTER,TextAnchor.TOP_LEFT));
renderer.setItemLabelsVisible(true);
chart.getCategoryPlot().setRenderer(renderer);
CategoryPlot plot = (CategoryPlot) chart.getPlot();
BarRenderer renderer1 = (BarRenderer) plot.getRenderer();
renderer=new BarRenderer();
ChartFrame frame=new ChartFrame("Student Performance",chart);
frame.setVisible(true);
frame.setSize(450,550);
}
catch (Exception ex) {
ex.printStackTrace();
}

}
});
 

In next Post I will show you how to pass parameters among java programs...

Comments