jfreechart缩放

public class PolarChartDemo1 extends ApplicationFrame {

public PolarChartDemo1(String s) {
   super(s);
   JPanel jpanel = createDemoPanel();
   jpanel.setPreferredSize(new Dimension(600, 500));
   setContentPane(jpanel);
}

private static XYDataset createDataset() {
   XYSeriesCollection xyseriescollection = new XYSeriesCollection();
   XYSeries xyseries = new XYSeries("Series       1 ");
   xyseries.add(0.0D, 2D);
   xyseries.add(90D, 13D);
   xyseries.add(180D, 9D);
   xyseries.add(270D, 8D);
   xyseriescollection.addSeries(xyseries);
   XYSeries xyseries1 = new XYSeries("Series       2 ");
   xyseries1.add(90D, -11.199999999999999D);
   xyseries1.add(180D, 21.399999999999999D);
   xyseries1.add(250D, 17.300000000000001D);
   xyseries1.add(355D, 10.9D);
   xyseriescollection.addSeries(xyseries1);
   return xyseriescollection;
}

private static JFreeChart createChart(XYDataset xydataset) {
   JFreeChart jfreechart = ChartFactory.createPolarChart(
     "Polar       Chart       Demo       1 ", xydataset, true,
     false, false);
   jfreechart.setBackgroundPaint(Color.white);
   PolarPlot polarplot = (PolarPlot) jfreechart.getPlot();
   polarplot.setBackgroundPaint(Color.lightGray);
   polarplot.addCornerTextItem("Corner       Item       1 ");
   polarplot.addCornerTextItem("Corner       Item       2 ");
   polarplot.setBackgroundImageAlignment(PolarPlot.MINIMUM_HEIGHT_TO_DRAW);
   polarplot.setAngleTickUnit(new NumberTickUnit(45));
   // polarplot.setAngleGridlinesVisible(false);

   // 设置雷达颜色
   GradientPaint gradientpaint3 = new GradientPaint(0.0F, 0.0F,
     Color.black, 0.0F, 0.0F, Color.black);
   polarplot.setRadiusGridlinePaint(gradientpaint3);//

   // 两个四边形颜色
   GradientPaint gradientpaint1 = new GradientPaint(0.0F, 0.0F, Color.red,
     0.0F, 0.0F, Color.red); //
   GradientPaint gradientpaint2 = new GradientPaint(0.0F, 0.0F,
     Color.blue, 0.0F, 0.0F, Color.blue); // ���ɫ
   // 设置两个四边形颜色
   DefaultPolarItemRenderer renderer = new DefaultPolarItemRenderer();
   renderer.setSeriesPaint(0, gradientpaint1);
   renderer.setSeriesPaint(1, gradientpaint2);
   polarplot.setRenderer(renderer);

   NumberAxis numberaxis = (NumberAxis) polarplot.getAxis();
   numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
   numberaxis.setAutoRange(true);
   numberaxis.setVisible(false);
   numberaxis.setTickUnit(new NumberTickUnit(2));// 设置雷达网格数量

   return jfreechart;
}

public static JPanel createDemoPanel() {
   final JFreeChart jfreechart = createChart(createDataset());
   ChartPanel chartpanel = new ChartPanel(jfreechart);
   // chartpanel.setMouseZoomable(true);// 是否可以鼠标放大
   //通过鼠标滚轮放大缩小放大,整体都放大缩小,寻找更好方法ing
   chartpanel.addMouseWheelListener(new MouseWheelListener() {

    public void mouseWheelMoved(MouseWheelEvent e) {
     if (-3 == e.getUnitsToScroll()) {
      jfreechart.setPadding(new RectangleInsets(jfreechart
        .getPadding().getTop() - 10, jfreechart
        .getPadding().getBottom() - 10, jfreechart
        .getPadding().getLeft() - 10, jfreechart
        .getPadding().getRight() - 10));
      System.out.println("向上");
     } else if (3 == e.getUnitsToScroll()){
      jfreechart.setPadding(new RectangleInsets(jfreechart
        .getPadding().getTop() + 10, jfreechart
        .getPadding().getBottom() + 10, jfreechart
        .getPadding().getLeft() + 10, jfreechart
        .getPadding().getRight() + 10));
      System.out.println("向下");
     }
    }

   });
   return chartpanel;
}

public static void main(String args[]) {
   PolarChartDemo1 polarchartdemo1 = new PolarChartDemo1(
     "Polar       Chart       Demo ");
   polarchartdemo1.pack();
   RefineryUtilities.centerFrameOnScreen(polarchartdemo1);
   polarchartdemo1.setVisible(true);
}

}

 

//放大部分另一种写法 - -

   chartpanel.addMouseWheelListener(new MouseWheelListener() {
    public void mouseWheelMoved(MouseWheelEvent e) {
     if (-3 == e.getUnitsToScroll()) {
      chartpanel.zoomInBoth(10, 10);
      System.out.println("向上");
     } else if (3 == e.getUnitsToScroll()) {
      chartpanel.zoomOutBoth(10, 10);
      System.out.println("向下");
     }
    }
   });

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值