我正在用jfreechart創建一個大圖。這個圖表對於屏幕來說太大了,所以我想把它放在一個滾動窗格中。但是,使用滾動條時,每次都會重新繪製完整的圖形,這使得它非常緩慢。有沒有解決方案?JFreeChart in scrollpane
感謝,
巴特
我正在用jfreechart創建一個大圖。這個圖表對於屏幕來說太大了,所以我想把它放在一個滾動窗格中。但是,使用滾動條時,每次都會重新繪製完整的圖形,這使得它非常緩慢。有沒有解決方案?JFreeChart in scrollpane
感謝,
巴特
在the source掃視顯示,ChartPanel構造函數帶有一個可選的布爾參數,指示其重新油漆時使用的圖像緩衝區。我想這會有所幫助。
public ChartPanel(JFreeChart chart, boolean useBuffer);
使用JFreeChart,當事件被從基礎數據集發射,而不管圖表是否嵌入一個JScrollPane
或不內徹底圖表將始終是重繪。
如果您的圖表包含大量數據點並經常更新,這一點尤爲明顯。有一些「kludges」,你可以嘗試讓你的用戶界面更加敏感;例如
SeriesDataset
),你可以推遲發射了,如果當前沒有被顯示SeriesChangeEvent
圖表。SeriesChangeEvent
而不是每個事件來節制多個更新,但明顯的缺點是您的UI不太「實時」。自己緩衝。在不在可見面板上的面板中渲染JFreeChart,並將其用作滾動面板中面板的緩衝區。然後,您可以控制重繪事件以及您同步兩個面板的頻率。
不,不起作用。只有一個參數的構造函數已經將'useBuffer'設置爲true。 – Fortega
public static final boolean DEFAULT_BUFFER_USED = true; – Fortega