JFreeChart là một khung công tác mã nguồn mở cho ngôn ngữ lập trình Java, cho phép tạo ra nhiều loại biểu đồ tương tác và không tương tác. Sau đây là hướng dẫn tích hợp biểu đồ JFreeChart trong Java Swing.
JFreeChart hỗ trợ một số biểu đồ khác nhau, bao gồm các biểu đồ kết hợp: Biểu đồ X-Y. Trục thời gian là có thể. Biểu đồ hình tròn Biểu đồ Gantt Biểu đồ thanh. Để tích hợp biểu đồ JFreeChart trong Java Swing chúng ta cần thêm thư viện jfreechart-1.5.0.jar và jcommon-1.0.23.jar vào dự án.
Tải thư viện JFreeChart tại đây: http ://bit. ly/2XOesyd
Sau đây là một số dạng biểu đồ phổ biến thường sử dụng:
1. Biểu đồ PieChart trong Java Swing:
Đoạn mã sau hướng dẫn tạo biểu đồ PieChart trong Java Swing:
package chart; import javax.swing.JFrame; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.data.general.DefaultPieDataset; import org.jfree.data.general.PieDataset; /** * * @author TVD */ public class TestPieChart { private static JFreeChart createChart(PieDataset dataset) { JFreeChart chart = ChartFactory.createPieChart( "CƠ CẤU DÂN SỐ THEO NHÓM TUỔI NĂM 2010", dataset, true, true, true); return chart; } private static PieDataset createDataset() { DefaultPieDataset dataset = new DefaultPieDataset(); dataset.setValue("Nhóm 0 - 14", new Double(25.0)); dataset.setValue("Nhóm 15 - 59", new Double(66.0)); dataset.setValue("Nhóm trên 60", new Double(9.0)); return dataset; } public static void main(String[] args) { JFreeChart pieChart = createChart(createDataset()); ChartPanel chartPanel = new ChartPanel(pieChart); JFrame frame = new JFrame(); frame.add(chartPanel); frame.setTitle("Biểu đồ JFreeChart trong Java Swing"); frame.setSize(600, 400); frame.setLocationRelativeTo(null); frame.setResizable(false); frame.setVisible(true); } }
Kết quả sau khi chạy đoạn mã trên như sau:
2. Biểu đồ BarChart trong Java Swing:
Đoạn mã sau hướng dẫn tạo biểu đồ BarChart trong Java Swing:
package chart; import javax.swing.JFrame; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.chart.plot.PlotOrientation; import org.jfree.data.category.CategoryDataset; import org.jfree.data.category.DefaultCategoryDataset; /** * * @author TVD */ public class TestBarChart { public static JFreeChart createChart() { JFreeChart barChart = ChartFactory.createBarChart( "BIỂU ĐỒ DÂN SỐ VIỆT NAM", "Năm", "Số người", createDataset(), PlotOrientation.VERTICAL, false, false, false); return barChart; } private static CategoryDataset createDataset() { final DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.addValue(68000000, "Số người", "1990"); dataset.addValue(80000000, "Số người", "2000"); dataset.addValue(88000000, "Số người", "2010"); dataset.addValue(95000000, "Số người", "2020"); return dataset; } public static void main(String[] args) { ChartPanel chartPanel = new ChartPanel(createChart()); chartPanel.setPreferredSize(new java.awt.Dimension(560, 367)); JFrame frame = new JFrame(); frame.add(chartPanel); frame.setTitle("Biểu đồ JFreeChart trong Java Swing"); frame.setSize(600, 400); frame.setLocationRelativeTo(null); frame.setResizable(false); frame.setVisible(true); } }
Kết quả sau khi chạy đoạn mã trên như sau:
3. Biểu đồ GanttChart trong Java Swing:
Đoạn mã sau hướng dẫn tạo biểu đồ GanttChart trong Java Swing:
package chart; import java.util.Date; import javax.swing.JFrame; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.data.category.IntervalCategoryDataset; import org.jfree.data.gantt.Task; import org.jfree.data.gantt.TaskSeries; import org.jfree.data.gantt.TaskSeriesCollection; import org.jfree.data.time.SimpleTimePeriod; /** * * @author TVD */ public class TestGanttChart { private static JFreeChart createChart() { JFreeChart chart = ChartFactory.createGanttChart( "BIỂU ĐỒ KẾ HOẠCH TRIỂN KHAI DỰ ÁN", "Dự án", "Thời gian", createDataset(), false, false, false ); return chart; } private static IntervalCategoryDataset createDataset() { TaskSeriesCollection ds = new TaskSeriesCollection(); TaskSeries taskSeries = new TaskSeries("T"); Task task1 = new Task("M471", new SimpleTimePeriod(new Date(2020, 2, 2), new Date(2020, 2, 4))); Task task2 = new Task("C321", new SimpleTimePeriod(new Date(2020, 2, 5), new Date(2020, 2, 9))); taskSeries.add(task1); taskSeries.add(task2); ds.add(taskSeries); return ds; } public static void main(String[] args) { JFreeChart freeChart = createChart(); ChartPanel chartPanel = new ChartPanel(freeChart); JFrame frame = new JFrame(); frame.add(chartPanel); frame.setTitle("Biểu đồ JFreeChart trong Java Swing"); frame.setSize(600, 400); frame.setLocationRelativeTo(null); frame.setResizable(false); frame.setVisible(true); } }
Kết quả sau khi chạy đoạn mã trên như sau:
Lời kết: Trong thời gian tới Team Việt Dev sẽ tiếp tục ra mắt nhiều nội dung khác liên quan đến Java Swing miễn phí đến bạn đọc, các bạn nhớ theo dõi kênh để có được những chia sẻ mới nhất.
(Tác giả: Team Việt Dev)