2

テキスト領域があります。スクロールバーをスクロールするたびに、メソッドを呼び出します。どのイベントでメソッドを呼び出す必要がありますか?私は試した:

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

3 に答える 3

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);
            }
        });
    }

}
于 2012-08-22T14:20:10.690 に答える
2

代わりに、mouselistenerイベントを使用する必要があります。

詳細については、こちらをご覧ください-http://docs.oracle.com/javase/tutorial/uiswing/events/mouselistener.html

于 2012-08-22T14:11:33.810 に答える
1

マウスクリックメソッドを使用してから、getX()とgetY()を使用して座標を取得し、ifテストを使用して、座標がJScrollPaneの寸法内にあるかどうかをテストします。mouselisterを実装し、継承されたすべての抽象メソッドを追加することを忘れないでください:)

于 2012-08-22T14:16:06.413 に答える