2011-08-22 42 views
1

我有一個combinedXYPlot和一個下拉列表。我想根據用戶從下拉式輸入更新我的圖表。這個怎麼做? 我嘗試以下代碼如何更新JFreeChart中的圖表?

frmJPanel.getContentPane().removeAll(); 

frmJPanel.setLayout(new BorderLayout()); 

initChart(option); 

frmJPanel.repaint(); 

的變化反映後,才最小化/最大化窗口。什麼是需要被調用的功能?有什麼更好的方法來做到這一點?

回答

1

ChartPanel」向圖表註冊以接收對圖表任何組件的更改通知。只要收到此通知,圖表就會自動重新繪製。「有例子herehere

+0

我必須包含函數調用 - frmPanel.validate()才能更新所做的更改。 – sam

+0

我很驚訝。是'frmPanel'是'JPanel'還是'ChartPanel'?參看這[示例](http://stackoverflow.com/questions/7071057/how-do-i-rotate-tick-mark-labels-on-the-domain-of-a-number-axis-in-jfreechart/7073428 #7073428),這無意中混淆了這兩者。 – trashgod

+1

它是一個JPanel。它應該是frmJPanel.validate() – sam

1

我在org.jfree.chart.ChartPanel裏面有我的圖表。當我想更新圖表時,我只需調用chartPanel.repaint()方法。

chartPanel本身被添加了另一個JPanel,它依次被放置在應用程序的主佈局中。 「

+0

我很驚訝重新繪製()是必需的,雖然我看不到任何傷害。 – trashgod