2013-02-09 18 views
2

我想創建簡單的XYSplineRenderer,但代碼只工作,如果我寫XYDotRenderer a = new XYDotRenderer();或XYLineAndShapeRenderer a = new XYLineAndShapeRenderer();同一個人能說出我做錯了什麼嗎?我只是編程的初學者。jfreechart XYLineAndShaperanderer,XYDotRenderer和XYSplineRenderer之間的代碼區別?

這裏是我的代碼:

package kubas; 

import org.jfree.chart.*; 
import org.jfree.chart.axis.*; 
import org.jfree.chart.plot.*; 
import org.jfree.chart.renderer.xy.XYSplineRenderer; 
import org.jfree.data.xy.*; 
import org.jfree.ui.ApplicationFrame; 

public class spausdink { 

    public static void main(String[] args) { 

XYSeries series = new XYSeries("XY grafikas"); 
     series.add(1, 2); 
     series.add(2, 4); 
     series.add(3, 8); 
     series.add(4, 16); 
     series.add(5, 32); 
     series.add(6, 64); 
     series.add(7, 128); 
     series.add(8, 256); 
     series.add(9, 512); 
     series.add(10, 1024); 

XYSeriesCollection dataset = new XYSeriesCollection(); 
     dataset.addSeries(series); 



ApplicationFrame frame = new ApplicationFrame("Mano grafikas"); 


     NumberAxis xax = new NumberAxis("x"); 
     NumberAxis yax = new NumberAxis("y"); 
     XYSplineRenderer a = new XYSplineRenderer(); 
     a.setPrecision(10); 
     XYPlot xyplot = new XYPlot(dataset, xax, yax, a); 

     JFreeChart chart = new JFreeChart(xyplot); 

     ChartPanel chartPanel = new ChartPanel(chart); 
     frame.setContentPane(chartPanel); 
     frame.pack(); 
     frame.setVisible(true); 


    } 

} 

編輯的短消息:

兩個代碼正常工作,然後創建新的項目。

+0

1爲[SSCCE](http://sscce.org/)。 – trashgod 2013-02-09 23:55:48

回答

5

我不確定有什麼問題,但下面有一個工作示例。我傾向於爲精度選擇小的奇數值;默認值是5。相同的代碼可與XYLineAndShapeRenderer

XYDotRenderer r = new XYDotRenderer(); 
r.setDotWidth(5); 
r.setDotHeight(5); 

image

import java.awt.Dimension; 
import java.awt.EventQueue; 
import javax.swing.JFrame; 
import org.jfree.chart.*; 
import org.jfree.chart.axis.*; 
import org.jfree.chart.plot.*; 
import org.jfree.chart.renderer.xy.XYSplineRenderer; 
import org.jfree.data.xy.*; 

public class Test { 

    public static final String Title = "f(x) = 2^x"; 

    public static void main(String[] args) { 
     EventQueue.invokeLater(new Runnable() { 

      @Override 
      public void run() { 
       display(); 
      } 
     }); 
    } 

    private static void display() { 
     XYSeries series = new XYSeries(Title); 
     for (int i = 0; i <= 10; i++) { 
      series.add(i, Math.pow(2, i)); 
     } 
     XYSeriesCollection dataset = new XYSeriesCollection(); 
     dataset.addSeries(series); 
     NumberAxis domain = new NumberAxis("x"); 
     NumberAxis range = new NumberAxis("f(x)"); 
     XYSplineRenderer r = new XYSplineRenderer(3); 
     XYPlot xyplot = new XYPlot(dataset, domain, range, r); 
     JFreeChart chart = new JFreeChart(xyplot); 
     ChartPanel chartPanel = new ChartPanel(chart){ 

      @Override 
      public Dimension getPreferredSize() { 
       return new Dimension(640, 480); 
      } 
     }; 
     JFrame frame = new JFrame(Title); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.add(chartPanel); 
     frame.pack(); 
     frame.setLocationRelativeTo(null); 
     frame.setVisible(true); 
    } 
} 
+1

參見[*初始線程*](http://docs.oracle.com/javase/tutorial/uiswing/concurrency/initial.html)和[*我應該避免使用set(Preferred | Maximum | Minimum)Size Java Swing中的方法*](http://stackoverflow.com/q/7229226/230513)? – trashgod 2013-02-09 16:35:13

+0

感謝您的代碼,但是當我複製/粘貼你的代碼到Netbeans時,它顯示和以前一樣的錯誤(也可以和XYLineAndShape和XYDotRanderer一起工作,也許問題出現在我的軟件中嗎? – 2013-02-09 22:52:19

+0

@VaidasTomkus:你[添加庫] (http://stackoverflow.com/q/1975973/230513)在NetBeans中編輯你的問題並粘貼錯誤信息 – trashgod 2013-02-09 23:55:11

相關問題