Advertisement
Guest User

Untitled

a guest
Feb 20th, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.42 KB | None | 0 0
  1. Exception in thread "main" java.lang.NullPointerException
  2. at MySlidingCategoryDatasetDemo2$DemoPanel.createChart(MySlidingCategoryDatasetDemo2.java:96)
  3. at MySlidingCategoryDatasetDemo2$DemoPanel.<init>(MySlidingCategoryDatasetDemo2.java:148)
  4. at MySlidingCategoryDatasetDemo2.createDemoPanel(MySlidingCategoryDatasetDemo2.java:170)
  5. at MySlidingCategoryDatasetDemo2.<init>(MySlidingCategoryDatasetDemo2.java:166)
  6. at MySlidingCategoryDatasetDemo2.main(MySlidingCategoryDatasetDemo2.java:174)
  7.  
  8. import java.awt.*;
  9. import javax.swing.*;
  10. import javax.swing.event.ChangeEvent;
  11. import javax.swing.event.ChangeListener;
  12. import org.jfree.chart.*;
  13. import org.jfree.chart.axis.NumberAxis;
  14. import org.jfree.chart.axis.ValueAxis;
  15. import org.jfree.chart.event.ChartChangeListener;
  16. import org.jfree.chart.plot.CombinedDomainXYPlot;
  17. import org.jfree.chart.plot.Plot;
  18. import org.jfree.chart.plot.XYPlot;
  19. import org.jfree.chart.renderer.xy.StandardXYItemRenderer;
  20. import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
  21. import org.jfree.data.category.*;
  22. import org.jfree.data.xy.XYDataset;
  23. import org.jfree.data.xy.XYSeries;
  24. import org.jfree.data.xy.XYSeriesCollection;
  25. import org.jfree.ui.ApplicationFrame;
  26. import org.jfree.ui.RefineryUtilities;
  27.  
  28. public class MySlidingCategoryDatasetDemo2 extends ApplicationFrame {
  29. static class DemoPanel extends JPanel implements ChangeListener {
  30. private static XYDataset createDataset() {
  31. XYSeries xyseries = new XYSeries("First");
  32. xyseries.add(1.0D, 1.0D);
  33. xyseries.add(2D, 4D);
  34. xyseries.add(3D, 3D);
  35. xyseries.add(4D, 5D);
  36. xyseries.add(5D, 5D);
  37. xyseries.add(6D, 7D);
  38. xyseries.add(7D, 7D);
  39. xyseries.add(8D, 8D);
  40. xyseries.add(9D, 8D);
  41. xyseries.add(10D, 8D);
  42. xyseries.add(11D, 8D);
  43. xyseries.add(12D, 8D);
  44. xyseries.add(13D, 8D);
  45. xyseries.add(14D, 8D);
  46. xyseries.add(15D, 8D);
  47. xyseries.add(16D, 25D);
  48. xyseries.add(17D, 8D);
  49. xyseries.add(18D, 5D);
  50. xyseries.add(19D, 7D);
  51. xyseries.add(20D, 6D);
  52. xyseries.add(21D, 8D);
  53. xyseries.add(22D, 4D);
  54. xyseries.add(23D, 4D);
  55. xyseries.add(24D, 2D);
  56. xyseries.add(25D, 1.0D);
  57. xyseries.add(26D, 8D);
  58. xyseries.add(27D, 8D);
  59. xyseries.add(28D, 8D);
  60. xyseries.add(29D, 8D);
  61. xyseries.add(30D, 8D);
  62. xyseries.add(31D, 8D);
  63. xyseries.add(32D, 25D);
  64. xyseries.add(33D, 8D);
  65. xyseries.add(34D, 5D);
  66. xyseries.add(35D, 7D);
  67. xyseries.add(36D, 6D);
  68. xyseries.add(37D, 8D);
  69. xyseries.add(38D, 4D);
  70. xyseries.add(39D, 4D);
  71. xyseries.add(40D, 2D);
  72. xyseries.add(41D, 1.0D);
  73.  
  74. XYSeriesCollection xyseriescollection = new XYSeriesCollection();
  75. xyseriescollection.addSeries(xyseries);
  76.  
  77. return xyseriescollection;
  78. }
  79.  
  80. private static JFreeChart createChart(XYDataset xydataset) {
  81. final CombinedDomainXYPlot xyplot = new CombinedDomainXYPlot();
  82. NumberAxis rangeAxis1 = new NumberAxis();
  83. rangeAxis1.setLowerBound(0);
  84. rangeAxis1.setUpperBound(30);
  85.  
  86. final XYPlot subplot1 = new XYPlot(xydataset, null, rangeAxis1,
  87. new StandardXYItemRenderer());
  88.  
  89. xyplot.add(subplot1);
  90. final JFreeChart jfreechart = new JFreeChart("Hello",
  91. JFreeChart.DEFAULT_TITLE_FONT, xyplot, true);
  92. // JFreeChart jfreechart =
  93. // ChartFactory.createXYLineChart("Line Chart Demo 2", "X", "Y",
  94. // xydataset, PlotOrientation.VERTICAL, true, true, false);
  95. // XYPlot xyplot = (XYPlot)jfreechart.getPlot();
  96. //
  97. xyplot.setDomainPannable(true);
  98. xyplot.setRangePannable(true);
  99. XYLineAndShapeRenderer xylineandshaperenderer = (XYLineAndShapeRenderer) xyplot
  100. .getRenderer();
  101. xylineandshaperenderer.setBaseShapesVisible(true);
  102. xylineandshaperenderer.setBaseShapesFilled(true);
  103. // NumberAxis numberaxis = (NumberAxis)xyplot.getRangeAxis();
  104. // numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
  105. // numberaxis.setRange(0.0D, 100D);
  106. ValueAxis valueaxis = xyplot.getDomainAxis();
  107. // valueaxis.setLowerMargin(0.34999999999999998D);
  108. valueaxis.setLowerBound(0);
  109. valueaxis.setUpperBound(60);
  110. return jfreechart;
  111. }
  112.  
  113. public void stateChanged(ChangeEvent changeevent) {
  114. // dataset.setFirstCategoryIndex(scroller.getValue());
  115. BoundedRangeModel scrollBarModel = scroller.getModel();
  116. try {
  117. Object src = changeevent.getSource();
  118. if (src == scrollBarModel) {
  119. int val = scrollBarModel.getValue();
  120. int ext = scrollBarModel.getExtent();
  121.  
  122. System.out.println(val);
  123. System.out.println(ext);
  124.  
  125. Plot plot = this.chartpanel.getChart().getPlot();
  126. if (plot instanceof XYPlot) {
  127. XYPlot hvp = (XYPlot) plot;
  128. ValueAxis axis = hvp.getDomainAxis();
  129.  
  130. this.chartpanel.getChart().removeChangeListener(
  131. (ChartChangeListener) this);
  132.  
  133. axis.setRange(val / this.xscrollFactor, (val + ext)
  134. / this.xscrollFactor);
  135.  
  136. this.chartpanel.getChart().addChangeListener(
  137. (ChartChangeListener) this);
  138. }
  139. }
  140. } catch (Exception e) {
  141. e.printStackTrace();
  142. }
  143.  
  144. }
  145.  
  146. JScrollBar scroller;
  147. SlidingCategoryDataset dataset;
  148. ChartPanel chartpanel;
  149. double xscrollFactor = 50;
  150.  
  151. public DemoPanel() {
  152. super(new BorderLayout());
  153. JFreeChart jfreechart = createChart(createDataset());
  154. chartpanel = new ChartPanel(jfreechart);
  155.  
  156. // chartpanel.setPreferredSize(new Dimension(400, 400));
  157. scroller = new JScrollBar(JScrollBar.HORIZONTAL);// (0, 0, 10, 0, 50);
  158. add(chartpanel);
  159. scroller.getModel().addChangeListener(this);
  160. JPanel jpanel = new JPanel(new BorderLayout());
  161. jpanel.add(scroller);
  162. jpanel.setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2));
  163. jpanel.setBackground(Color.white);
  164. add(jpanel, "South");
  165. }
  166. }
  167.  
  168. public MySlidingCategoryDatasetDemo2(String s) {
  169. super(s);
  170. setDefaultCloseOperation(3);
  171. setContentPane(createDemoPanel());
  172. }
  173.  
  174. public static JPanel createDemoPanel() {
  175. return new DemoPanel();
  176. }
  177.  
  178. public static void main(String args[]) {
  179. MySlidingCategoryDatasetDemo2 slidingcategorydatasetdemo2 = new MySlidingCategoryDatasetDemo2(
  180. "JFreeChart: SlidingCategoryDatasetDemo2.java");
  181. slidingcategorydatasetdemo2.pack();
  182. RefineryUtilities.centerFrameOnScreen(slidingcategorydatasetdemo2);
  183. slidingcategorydatasetdemo2.setVisible(true);
  184. }
  185. }
  186.  
  187. StandardXYItemRenderer renderer =
  188. (StandardXYItemRenderer) subplot1.getRenderer();
  189. renderer.setBaseShapesVisible(true);
  190. renderer.setBaseShapesFilled(true);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement