2013-10-23 53 views
0

我已經創建了一個使用了JFreeChart作出XYLineChart(除其他事項外),但最近遇到內的JFreeChart錯誤的應用程序,由此,如果圖表的x或y軸被設置爲非常小的範圍(x或y軸的值之間的低值或最小差異),圖表將如常繪製,但所述軸上的所有刻度標籤都將消失。如果圖表被用戶放大得太遠,也會發生這種情況。的JFreeChart:變焦()之後添加的代碼 - 防止消失的刻度標記

我設法通過增加我的應用程序的用戶界面的按鈕,允許用戶刷新軸圖表製作或放大到後,來解決這個問題。此按鈕的動作監聽器重新設置刻度標籤,然後它們在軸上正確顯示。

現在,我想這不是自動完成使用我所做的按鈕。爲此,我需要將這些代碼放置在Chart Panel創建的某處,並在ChartPanel.zoom()方法結束執行後立即執行。

我的問題是,當用戶放大圖表,完成執行變焦()代碼後,會發生什麼?控制權在哪裏?或者,有沒有辦法在zoom()方法執行後每次添加幾行代碼?

如果有人有任何建議,請儘快讓我知道。謝謝。

+0

什麼建議?我正在尋找放置我的代碼的位置,以便在圖表面板放大後執行?哪個方法控制這個:zoom()或者zoomInBoth()? –

回答

0

我已經加入了PlotChangeListenerPlot對象處理縮放事件。這將在各種事件之後被調用,其中之一是縮放。例如: -

chart.getPlot().addChangeListener(new PlotChangeListener(){ 
    @Override 
    public void plotChanged(PlotChangeEvent event) 
    { 
    System.out.println("I am called after a zoom event (and some other events too)."); 
    }});