JTextArea中滚动条的事件

时间:2012-08-22 14:08:06

标签: java swing

我有一个文本区域,每当滚动滚动条时,我想调用一个方法。在什么事件我应该称之为方法?我试过了:

private void jScrollPane1MouseReleased(java.awt.event.MouseEvent evt) {
      //execute();  
     System.out.println("Scroller Moved");       
}

3 个答案:

答案 0 :(得分:3)

您想在JScrollBar上使用AdjustmentListener(选择您要监听移动的那个)。这是一个在竖线上聆听的例子。

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class TempProject extends JPanel{

    public static void main(String args[])    {
        EventQueue.invokeLater(new Runnable()
        {
            public void run()
            {
                JFrame frame = new JFrame();
                frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
                JPanel panel = new JPanel();
                panel.setPreferredSize(new Dimension(300, 2000));
                JScrollPane pane = new JScrollPane(panel);
                pane.setPreferredSize(new Dimension(400, 300));
                pane.getVerticalScrollBar().addAdjustmentListener(new AdjustmentListener(){

                    @Override
                    public void adjustmentValueChanged(AdjustmentEvent e) {
                        System.out.println("Hi Mom!");
                    }});

                frame.setContentPane(pane); 
                frame.pack();
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }
        });
    }

}

答案 1 :(得分:2)

您应该使用mouselistener事件。

如果您想了解更多信息,请查看此处 - http://docs.oracle.com/javase/tutorial/uiswing/events/mouselistener.html

答案 2 :(得分:1)

使用mouseclicked方法,然后使用getX()和getY()获取坐标,然后使用if测试,测试坐标是否在JScrollPane的维度内。只记得实现mouselister并添加所有继承的抽象方法:)