Merhaba.JFreeChart-da hem saat,hem de tarihin görünmesi için ne yapmalıyım? patterni değişiyorum ama XYDataSeries benden long,long number,number ve s. parametrler istiyor.icinde Date isteyen bir method yok.yani ben methoda Tarih gonderemiyorum sadece saat gondere biliyorum. alt text

Malumatların aktarıldığı method:

 public WebHitDataSet() throws ParseException {
    SimpleDateFormat sdf = new SimpleDateFormat("dd MMM yyyy HH:mm:ss");
    Calendar cal1 = new GregorianCalendar(2011, 12, 01, 02, 19, 50);
    Calendar cal2 = new GregorianCalendar(2011, 12, 01, 01, 12, 50);
    Calendar cal3 = new GregorianCalendar(2011, 12, 01, 03, 05, 50);
    Calendar cal4 = new GregorianCalendar(2011, 12, 01, 07, 05, 50);
    data.add(new WebHit(cal1.getTime(), 55437));
    data.add(new WebHit(cal2.getTime(), 55745));
    data.add(new WebHit(cal3.getTime(), 52523));
    data.add(new WebHit(cal4.getTime(), 20258));
    System.out.println(cal1.getTime().toString()+"-----------------------");
}

Haritanın oluşturulduğu method:

 public static String generateXYChart(String section, HttpSession session, PrintWriter pw) {
    String filename = null;
    try {
        //  Retrieve list of WebHits
        WebHitDataSet whDataSet = new WebHitDataSet();

         ArrayList list = whDataSet.data;

        //  Throw a custom NoDataException if there is no data
        if (list.size() == 0) {
            System.out.println("No data has been found");
            throw new NoDataException();
        }

        //  Create and populate an XYSeries Collection
        XYSeries dataSeries = new XYSeries("Hits");

        Iterator iter = list.listIterator();
        while (iter.hasNext()) {
            WebHit wh = (WebHit) iter.next();
            dataSeries.add(wh.getHitDate().getTime(), wh.getHitCount());
            System.out.println(wh.getHitDate().getTime()+"++++++++++++++++++++++++++++++////");
        }
        XYSeriesCollection xyDataset = new XYSeriesCollection(dataSeries);

        //  Create tooltip and URL generators
        SimpleDateFormat sdf = new SimpleDateFormat("dd MMM yyyy HH:mm:ss");

        StandardXYToolTipGenerator ttg = new StandardXYToolTipGenerator(
                StandardXYToolTipGenerator.DEFAULT_TOOL_TIP_FORMAT,
                sdf, NumberFormat.getInstance());

        TimeSeriesURLGenerator urlg = new TimeSeriesURLGenerator(
                sdf, "pie_chart.jsp", "series", "hitDate");

        //  Create the chart object
        DateAxis timeAxis = new DateAxis("date");
        timeAxis.setDateFormatOverride(sdf);

  //      timeAxis.setTickUnit(new DateTickUnit(DateTickUnitType.MILLISECOND, 1));

        NumberAxis valueAxis = new NumberAxis("values");
        valueAxis.setAutoRangeIncludesZero(false);  // override default
        StandardXYItemRenderer renderer = new StandardXYItemRenderer(
                StandardXYItemRenderer.LINES + StandardXYItemRenderer.SHAPES,
                ttg, urlg);
        renderer.setShapesFilled(true);

        XYPlot plot = new XYPlot(xyDataset, timeAxis, valueAxis, renderer);
        JFreeChart chart = new JFreeChart("", JFreeChart.DEFAULT_TITLE_FONT, plot, true);
        chart.setBackgroundPaint(java.awt.Color.white);

        //  Write the chart image to the temporary directory
        ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
        filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, info, session);
        System.out.println("filename = " + filename);

        //  Write the image map to the PrintWriter
        ChartUtilities.writeImageMap(pw, filename, info, true);
        pw.flush();

    } catch (NoDataException e) {
        System.out.println(e.toString());
        filename = "public_nodata_500x300.png";
    } catch (Exception e) {
        System.out.println("Exception - " + e.toString());
        e.printStackTrace(System.out);
        filename = "public_error_500x300.png";
    }
    return filename;
}

soruldu: 14 Şub '13, 05:19

Serxan's gravatar image

Serxan
51691106107
cevap kabul oranı: 46%


Şu şekilde denermisin üçüncü bür parametre olarak format alabiliyor olması lazım

timeAxis.setTickUnit(new DateTickUnit(DateTickUnitType.MILLISECOND, 1,new SimpleDateFormat("dd MMM yyyy HH:mm:ss")));

permanent link

cevaplandı: 15 Şub '13, 04:23

Alp's gravatar image

Alp
873304447
cevap kabul oranı: 18%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×1

Soruldu: 14 Şub '13, 05:19

Görüntüleme: 627 kez

Son güncelleme: 15 Şub '13, 04:23

Benzer sorular

powered by BitNami OSQA