package jftest;
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JPanel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.PolarPlot;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
public class PolarChartDemo1 extends ApplicationFrame {
public PolarChartDemo1(String title) {
super(title);
JPanel chartPanel = createDemoPanel();
chartPanel.setPreferredSize(new Dimension(500, 270));
setContentPane(chartPanel);
}
private static XYDataset createDataset() {
XYSeriesCollection result = new XYSeriesCollection();
XYSeries s1 = new XYSeries("Series 1");
s1.add(0.0, 2.0);
s1.add(90.0, 13.0);
s1.add(180.0, 9.0);
s1.add(270.0, 8.0);
result.addSeries(s1);
XYSeries s2 = new XYSeries ("Series 2");
s2.add(90.0, -11.2);
s2.add(180.0, 21.4);
s2.add(250.0, 17.3);
s2.add(355.0, 10.9);
result.addSeries(s2);
return result;
}
private static JFreeChart createChart(XYDataset dataset) {
JFreeChart chart = ChartFactory.createPolarChart(
"Polar Chart Demo 1", dataset, true, false, false);
chart.setBackgroundPaint(Color.white);
PolarPlot plot = (PolarPlot) chart.getPlot();
plot.setBackgroundPaint(Color.lightGray);
plot.addCornerTextItem("Corner Item 1");
plot.addCornerTextItem("Corner Item 2");
plot.setAngleGridlinePaint(Color.white);
plot.setRadiusGridlinePaint(Color.white);
NumberAxis rangeAxis = (NumberAxis) plot.getAxis();
rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
return chart;
}
public static JPanel createDemoPanel() {
JFreeChart chart = createChart(createDataset());
ChartPanel panel = new ChartPanel(chart);
panel.setMouseZoomable(false);
return panel;
}
public static void main(String[] args) {
PolarChartDemo1 demo = new PolarChartDemo1("Polar Chart Demo");
demo.pack();
RefineryUtilities.centerFrameOnScreen(demo);
demo.setVisible(true);
}
}
在struts的配置文件中,你画图的这个action的包继承(extends)的是jfreechart这一项 这个action返回类型修改为chart即type="chart",这里你也可以设置图标的长宽 其它的配置跟普通的action类似,你自己试试呢
追问
如果通过servlet呢 那样怎么显示呢?jfreechart是弹出的窗体呀!
回答
servlet我是没做过,但action其本质也是一个servlet啊,相同道理的应该 我就在struts2中用过jfreechart <action name="*******action" class="********" method="********"> <result name="success" type="chart" > <param name="height">600</param> <param name="width">800</param> </result> </action> 这是指向到一个action的,jfreechart自己会生成一个chart在页面打印出来的(暂时我只记得这么多,下班回家以后贴下一个完整的配置)