2011-12-09 96 views
2

如果我有這樣的事情,在那裏我可以控制自動滾動使用布爾標誌「performAdjustment」:檢測鼠標點擊事件

static boolean performAdjustment = true; 

JTextArea textArea = new JTextArea(); 
JScrollPane jScrollPane1 = new JScrollPane(textArea); 

    jScrollPane1.getVerticalScrollBar().addAdjustmentListener(new AdjustmentListener() { 
      public void adjustmentValueChanged(AdjustmentEvent e) { 
       if(performAdjustment){ 
        e.getAdjustable().setValue(e.getAdjustable().getMaximum()); 
       } 
     }}); 

現在我這工作得很好,但問題是我想在用戶點擊滾動條時取消設置這個布爾標誌,並且當用戶離開點擊時(例如JavaScript中的onMouseOut事件),應該再次設置它。

你能告訴我如何添加這個新的EventListener,我可以檢測到滾動條的單擊事件?

+0

我需要像jScrollPane1.getVerticalScrollBar()。addClickListener()或類似的東西,有沒有這樣的事情exisits? – Johnydep

+0

如何添加鼠標偵聽器? –

+0

謝謝你是對的,但我只是意識到我可以自動滾動使用:textArea.setCaretPosition(textArea.getDocument()。getLength()); – Johnydep

回答

2

我很確定鼠標聽衆應該幫助你實現你想要的東西;

jScrollPane1.getVerticalScrollBar().addMouseListener(...)

+0

有一個相關示例[此處](http://stackoverflow.com/a/7519403/230513)。 – trashgod

+0

感謝它有另一個很好的實現自動滾動的想法 – Johnydep