2011-12-09 172 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