2014-04-13 93 views
0

進出口新的使用API​​。 我正試圖在面板上顯示圖表。 我已經建立了庫和他們的工作。 使用的API是JFreeCharts。添加JChart到面板

我做了一個叫JChart類:

public class JChart extends JFrame 
{ 

private static final long serialVersionUID = 1L; 

    public JChart(String applicationTitle, String chartTitle) 
    { 

     // This will create the dataset 
     PieDataset dataset = createDataset(); 
     // based on the dataset we create the chart 
     JFreeChart chart = createChart(dataset, chartTitle); 
     // we put the chart into a panel 
     ChartPanel chartPanel = new ChartPanel(chart); 
     // default size 
     chartPanel.setPreferredSize(new java.awt.Dimension(200, 150)); 



    } 



/** 
    * Creates a sample dataset 
    */ 

    private PieDataset createDataset() { 
     DefaultPieDataset result = new DefaultPieDataset(); 
     result.setValue("Linux", 29); 
     result.setValue("Mac", 20); 
     result.setValue("Windows", 51); 
     return result; 

    } 


/** 
    * Creates a chart 
    */ 

    private JFreeChart createChart(PieDataset dataset, String title) { 

     JFreeChart chart = ChartFactory.createPieChart3D(title,   // chart title 
      dataset,    // data 
      true,     // include legend 
      true, 
      false); 

     PiePlot3D plot = (PiePlot3D) chart.getPlot(); 
     plot.setStartAngle(290); 
     plot.setDirection(Rotation.CLOCKWISE); 
     plot.setForegroundAlpha(0.5f); 
     return chart; 

    } 

} 

在我的表單中我有一個方法:

private void LoadMyGraphs() 
    {  
     JChart chart = new JChart("name", "title"); 
     myGraphPanel.add(chart); 

    } 

我越來越沒有錯誤,但小組不會改變。 我可以改變面板的背景顏色,所以我知道什麼是在這方面擰乾。 任何信息將是驚人的,謝謝!

回答

1

在某些時候必須在圍框的ChartPanel添加到一個容器中,例如

this.add(chartPanel); 

順便說一句,也考慮重寫getPreferredSize(),如圖here並建議here。另見Initial Threads。更多示例引用爲here

+0

你能解釋一下你的意思?我無法讓它工作。感謝 – user3529501

+0

請編輯您的問題包括[MCVE(http://stackoverflow.com/help/mcve)顯示你目前的做法。 – trashgod