2012-01-17 55 views
2

當我向左拖動時,如何阻止JFreechart從未放大縮小?JFreechart在向左拖動時停止放大

thxs。

+0

你到底受拖累意味着剩下什麼?是你想重寫的未縮放的正常行爲? – unexplored 2012-01-17 00:11:15

+0

是否要完全禁用未縮放,或者您只想禁用鼠標拖動引發的行爲?如果你能提供更多的信息,我可能會幫助。 – unexplored 2012-01-17 02:17:21

回答

4

我做了一個假設(基於你的簡短問題),當鼠標被拖動到左側時,你想禁用「縮放恢復」功能。

如果是這樣,你只需要重寫restoreAutobounds()方法是這樣的:

JFreeChart chart = /* create your chart here*/ 

// add the chart to the panel and override 
// the zoom restore behavior 

chartPanel = new ChartPanel(chart){ 

    @Override 
    public void restoreAutoBounds(){ 
     // Do nothing 
    }   
}; 

或者,事件更是延長ChartPanel對象和覆蓋它。

注:縮小特徵將仍然可以從圖表的上下文菜單,以便用戶仍然具有意義的方式來縮小

+0

基本上我想用ESC鍵取消縮放...並禁用縮放恢復......這應該是可能的吧? – 2012-01-22 23:47:29

+0

在這種情況下,您必須在restoreAutoBounds()覆蓋中擁有一些邏輯。例如,您必須攔截ESC鍵並調用restoreAutoBounds(),同時標記它必須實際恢復它,然後只需調用super.restoreAutoBounds(),如果拖動鼠標,則不會在覆蓋中執行任何操作。 – unexplored 2012-01-23 14:26:41

+0

嗯,不能得到keylistener工作出於某種原因。 – 2012-01-23 19:36:30