1+ package view ;
2+
3+ import java .awt .Color ;
4+ import java .awt .Dimension ;
5+ import java .awt .GradientPaint ;
6+ import model .LuggageDAO ;
7+ import model .PassengerDAO ;
8+
9+ import org .jfree .chart .ChartFactory ;
10+ import org .jfree .chart .ChartPanel ;
11+ import org .jfree .chart .JFreeChart ;
12+ import org .jfree .chart .axis .CategoryAxis ;
13+ import org .jfree .chart .axis .CategoryLabelPositions ;
14+ import org .jfree .chart .axis .NumberAxis ;
15+ import org .jfree .chart .plot .CategoryPlot ;
16+ import org .jfree .chart .plot .PlotOrientation ;
17+ import org .jfree .chart .renderer .category .BarRenderer ;
18+ import org .jfree .data .category .CategoryDataset ;
19+ import org .jfree .data .category .DefaultCategoryDataset ;
20+ import javax .swing .JPanel ;
21+ import org .jfree .ui .RefineryUtilities ;
22+
23+ public class BarChartStatus extends JPanel {
24+
25+ public BarChartStatus () {
26+ // super(title);
27+ CategoryDataset dataset = createDataset ();
28+ JFreeChart chart = createChart (dataset );
29+ ChartPanel chartPanel = new ChartPanel (chart , false );
30+ chartPanel .setPreferredSize (new Dimension (1200 , 670 ));
31+ add (chartPanel );
32+ }
33+
34+ private CategoryDataset createDataset () {
35+
36+ // legenda name
37+ final String series1 = "Passengers" ;
38+ final String series2 = "Luggage" ;
39+
40+ //int totalPassenger = PassengerDAO.readTotalPassenger();
41+
42+ int totalLuggage = LuggageDAO .readTotalLuggage ();
43+ int foundLuggage = LuggageDAO .readFound ();
44+ int missingLuggage = LuggageDAO .readMissing ();
45+ int returnedLuggage = LuggageDAO .readReturned ();
46+ int destroyedLuggage = LuggageDAO .readDestroyed ();
47+ // x as.
48+ final String category1 = "Passengers" ;
49+ final String category2 = "Luggage" ;
50+ // final String category3 = "Category 3";
51+ // final String category4 = "Category 4";
52+ // final String category5 = "Category 5";
53+
54+ // create the dataset...
55+ final DefaultCategoryDataset dataset = new DefaultCategoryDataset ();
56+
57+ //dataset.addValue(totalPassenger, series1, category1);
58+ // dataset.addValue(4.0, series1, category2);
59+ // dataset.addValue(3.0, series1, category3);
60+ // dataset.addValue(5.0, series1, category4);
61+ // dataset.addValue(5.0, series1, category5);
62+
63+ dataset .addValue (totalLuggage , series2 , category2 );
64+ // dataset.addValue(readFound, series2, category2);
65+ // dataset.addValue(readMissing, series2, category2);
66+ // dataset.addValue(readReturned, series2, category2);
67+ // dataset.addValue(readDestroyed, series2, category2);
68+
69+ // dataset.addValue(4.0, series3, category1);
70+ // dataset.addValue(3.0, series3, category2);
71+ // dataset.addValue(2.0, series3, category3);
72+ // dataset.addValue(3.0, series3, category4);
73+ // dataset.addValue(6.0, series3, category5);
74+
75+ return dataset ;
76+
77+ }
78+
79+ private JFreeChart createChart (final CategoryDataset dataset ) {
80+
81+ // create the chart...
82+ final JFreeChart chart = ChartFactory .createBarChart (
83+ "Luggage status graph" , // chart title
84+ "Category" , // domain axis label
85+ "Amount" , // range axis label
86+ dataset , // data
87+ PlotOrientation .VERTICAL , // orientation
88+ true , // include legend
89+ true , // tooltips?
90+ false // URLs?
91+ );
92+
93+ // NOW DO SOME OPTIONAL CUSTOMISATION OF THE CHART...
94+
95+ // set the background color for the chart...
96+ chart .setBackgroundPaint (Color .white );
97+
98+ // get a reference to the plot for further customisation...
99+ final CategoryPlot plot = chart .getCategoryPlot ();
100+ plot .setBackgroundPaint (Color .lightGray );
101+ plot .setDomainGridlinePaint (Color .white );
102+ plot .setRangeGridlinePaint (Color .white );
103+
104+ // set the range axis to display integers only...
105+ final NumberAxis rangeAxis = (NumberAxis ) plot .getRangeAxis ();
106+ rangeAxis .setStandardTickUnits (NumberAxis .createIntegerTickUnits ());
107+
108+ // disable bar outlines...
109+ final BarRenderer renderer = (BarRenderer ) plot .getRenderer ();
110+ renderer .setDrawBarOutline (false );
111+
112+ // set up gradient paints for series...
113+ final GradientPaint gp0 = new GradientPaint (
114+ 0.0f , 0.0f , Color .blue ,
115+ 0.0f , 0.0f , Color .lightGray
116+ );
117+ final GradientPaint gp1 = new GradientPaint (
118+ 0.0f , 0.0f , Color .green ,
119+ 0.0f , 0.0f , Color .lightGray
120+ );
121+ final GradientPaint gp2 = new GradientPaint (
122+ 0.0f , 0.0f , Color .red ,
123+ 0.0f , 0.0f , Color .lightGray
124+ );
125+ renderer .setSeriesPaint (0 , gp0 );
126+ renderer .setSeriesPaint (1 , gp1 );
127+ renderer .setSeriesPaint (2 , gp2 );
128+
129+ final CategoryAxis domainAxis = plot .getDomainAxis ();
130+ domainAxis .setCategoryLabelPositions (
131+ CategoryLabelPositions .createUpRotationLabelPositions (Math .PI / 6.0 )
132+ );
133+ // OPTIONAL CUSTOMISATION COMPLETED.
134+
135+ return chart ;
136+
137+ }
138+
139+ public static void main (final String [] args ) {
140+
141+ BarChartStatus demo = new BarChartStatus ();
142+ // demo.pack();
143+ // RefineryUtilities.centerFrameOnScreen(demo);
144+ demo .setVisible (true );
145+
146+ }
147+ }
0 commit comments