文本中数据不断再变化,java程序取出数据,用曲线显示
问题
一、怎么自动循环取数据?二、用Swing怎么显示数据?谁有这样相似的代码给参考下,谢谢

解决方案 »

  1.   

    swing 不是有2D 么? 直接画图就行了,哈哈
      

  2.   

    private static JFreeChart createChart(XYDataset dataset) {        JFreeChart chart = ChartFactory.createTimeSeriesChart(//.createStackedXYAreaChart(
                    dirName + Strname + "数据性能", // title
                    "时间 " + MonthandDay, // x-axis label
                    "百分比", // y-axis label
                    dataset, // data
                    //    PlotOrientation.VERTICAL,
                    true, // create legend?
                    true, // generate tooltips?
                    false               // generate URLs?
            );
            MonthandDay = "";
            XYPlot plot = (XYPlot) chart.getPlot();
            plot.setBackgroundPaint(Color.lightGray);
            plot.setDomainGridlinePaint(Color.white);
            plot.setRangeGridlinePaint(Color.white);
            plot.setAxisOffset(new RectangleInsets(5D, 5D, 5D, 5D));        plot.setDomainCrosshairVisible(true);
            plot.setRangeCrosshairVisible(true);
            ValueAxis rangeAxis = plot.getRangeAxis();
            rangeAxis.setRange(new Range(0, 100));    //设置y轴
            plot.setRangeAxis(rangeAxis);
            XYItemRenderer r = plot.getRenderer();
            if (r instanceof XYLineAndShapeRenderer) {
                XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) r;
                renderer.setDrawOutlines(true);
                renderer.setDefaultShapesVisible(false);
                renderer.setSeriesStroke(0, new BasicStroke(1.5F, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL));
                renderer.setSeriesStroke(1, new BasicStroke(1.5F, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER));
                renderer.setSeriesStroke(2, new BasicStroke(1.5F, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_ROUND));
                plot.setRenderer(renderer);        }
            DateAxis axis = (DateAxis) plot.getDomainAxis();
            axis.setDateFormatOverride(new SimpleDateFormat("HH:mm"));
            return chart;