我有一个文本区域,每当滚动滚动条时,我想调用一个方法。在什么事件我应该称之为方法?我试过了:
private void jScrollPane1MouseReleased(java.awt.event.MouseEvent evt) {
//execute();
System.out.println("Scroller Moved");
}
答案 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并添加所有继承的抽象方法:)