2014-03-25 25 views
0

我正在創建JFreeChart(如下所示)。在x軸上,我需要顯示大約1000個刻度。所以,這就是爲什麼我把JFreeChart加入JScrollPane。當我嘗試將圖表面板的WIDTH設置爲2000時,繪圖不會按比例調整大小。有什麼方法可以定義一個圖的寬度(XYPlot)。如何在JFreeChart中設置圖的大小?

XYDataset dataset = createData(data); 
    JFreeChart chart = createChart(dataset); 
    final ChartPanel chartPanel = new ChartPanel(chart); 
    chartPanel.setPreferredSize(new Dimension(2000, this.height)); 
    JScrollPane scrl = new JScrollPane(chartPanel);  
    scrl.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); 
    scrl.setViewportView(chartPanel); 
    scrl.setPreferredSize(new Dimension(this.width, this.height)); 
    this.add(scrl); 

回答

0

到目前爲止,我找到了一個解決問題的答案。然而,也許有更好的解決方案:

// The first step is to avoid scaling up a small chart. 
// The value of "MaximumDrawWidth" should be large, for instance 4000 
chartPanel.setMaximumDrawWidth(4000); 
// The second step is to set the width of a chart panel. 
chartPanel.setPreferredSize(new Dimension(2000,this.height)); 
+0

[不使用'了setPreferredSize()'當你真正的意思是覆蓋'的getPreferredSize()'](http://stackoverflow.com/q/7229226/ 230513)。 – trashgod