我有一个文本区域,每当滚动条滚动时,我都想调用一个方法。在什么事件上我应该调用该方法?我试过了:
private void jScrollPane1MouseReleased(java.awt.event.MouseEvent evt) {
//execute();
System.out.println("Scroller Moved");
}
您想AdjustmentListener
在 JScrollBar 上使用 (选择您要在其上收听移动的那个)。这是在竖线上聆听的示例。
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);
}
});
}
}
您应该改用 mouselistener 事件。
如果您想了解更多信息,请查看此处 - http://docs.oracle.com/javase/tutorial/uiswing/events/mouselistener.html
使用 mouseclicked 方法,然后使用 getX() 和 getY() 获取坐标,然后使用 if 测试,测试坐标是否在 JScrollPane 的尺寸范围内。只要记住实现 mouselister 并添加所有继承的抽象方法 :)