Скачала руководство пользователя "The JFreeChart Class Library Version 0.9.18 Developer Guide" Скачала соответствующие джары, а именно: jfreechart-0.9.18 В этом руководстве пользователя есть пример, который показывает как строить динамические графики. Я полностью скопировала этот пример,подключила библиотеки, но он пишет, что метод setDefaultStroke(new BasicStroke(2f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL)); не найден и конструктор XYPlot xyplot = new XYPlot(dataset, domain, range); тоже пишет не найден.Не могу понять почему, ведь скачала вроде то,что нужно.Пожалуйста помогите очень нужно.Вот этот пример из руководства пользователя Код | import java.awt.BasicStroke; import java.awt.BorderLayout; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.Timer; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.DateAxis; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.plot.XYPlot; import org.jfree.chart.renderer.XYItemRenderer; import org.jfree.data.time.Millisecond; import org.jfree.data.time.TimeSeries; import org.jfree.data.time.TimeSeriesCollection;
public class MemoryUsage extends JPanel { private TimeSeries total; private TimeSeries free; public MemoryUsage() { super(new BorderLayout()); // create two series that automatically discard data more than 30 seconds old... this.total = new TimeSeries("Total", Millisecond.class); this.total.setHistoryCount(30000); this.free = new TimeSeries("Free", Millisecond.class); this.free.setHistoryCount(30000); TimeSeriesCollection dataset = new TimeSeriesCollection(); dataset.addSeries(total); dataset.addSeries(free); DateAxis domain = new DateAxis("Time"); NumberAxis range = new NumberAxis("Memory");
[b][color=green]XYPlot xyplot = new XYPlot(dataset, domain, range);[/color][/b] xyplot.setBackgroundPaint(Color.black); XYItemRenderer renderer = xyplot.getRenderer(); renderer.setSeriesPaint(0, Color.red); renderer.setSeriesPaint(1, Color.green); [b][color=green]renderer.setDefaultStroke(new BasicStroke(2f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL));[/color][/b] domain.setAutoRange(true); domain.setLowerMargin(0.0); domain.setUpperMargin(0.0); domain.setTickLabelsVisible(true); range.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); JFreeChart chart = new JFreeChart( "Memory Usage", JFreeChart.DEFAULT_TITLE_FONT, xyplot, true ); ChartPanel chartPanel = new ChartPanel(chart); add(chartPanel); } private void addTotalObservation(double y) { total.add(new Millisecond(), y); } private void addFreeObservation(double y) { free.add(new Millisecond(), y); } class DataGenerator extends Timer implements ActionListener { DataGenerator() { super(100, null); addActionListener(this); } public void actionPerformed(ActionEvent event) { long f = Runtime.getRuntime().freeMemory(); long t = Runtime.getRuntime().totalMemory(); addTotalObservation(t); addFreeObservation(f); } } public static void main(String[] args) { JFrame frame = new JFrame("Memory Usage Demo"); MemoryUsage panel = new MemoryUsage(); frame.getContentPane().add(panel, BorderLayout.CENTER); frame.setBounds(200, 120, 600, 280); frame.setVisible(true); panel.new DataGenerator().start(); frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); } }
|
|