Mega Code Archive

 
Categories / Java Tutorial / Swing
 

Listening for Scrollbar Value Changes in a JScrollPane Container

import java.awt.Adjustable; import java.awt.event.AdjustmentEvent; import java.awt.event.AdjustmentListener; import javax.swing.JScrollPane; import javax.swing.JTextArea; public class Main {   public static void main(String[] argv) throws Exception {     JTextArea textArea = new JTextArea();     JScrollPane pane = new JScrollPane(textArea);     // Listen for value changes in the scroll pane's scrollbars     AdjustmentListener listener = new MyAdjustmentListener();     pane.getHorizontalScrollBar().addAdjustmentListener(listener);     pane.getVerticalScrollBar().addAdjustmentListener(listener);   } } class MyAdjustmentListener implements AdjustmentListener {   public void adjustmentValueChanged(AdjustmentEvent evt) {     Adjustable source = evt.getAdjustable();     if (evt.getValueIsAdjusting()) {       return;     }     int orient = source.getOrientation();     if (orient == Adjustable.HORIZONTAL) {       System.out.println("from horizontal scrollbar");      } else {       System.out.println("from vertical scrollbar");     }     int type = evt.getAdjustmentType();     switch (type) {     case AdjustmentEvent.UNIT_INCREMENT:       System.out.println("Scrollbar was increased by one unit");       break;     case AdjustmentEvent.UNIT_DECREMENT:       System.out.println("Scrollbar was decreased by one unit");       break;     case AdjustmentEvent.BLOCK_INCREMENT:       System.out.println("Scrollbar was increased by one block");       break;     case AdjustmentEvent.BLOCK_DECREMENT:       System.out.println("Scrollbar was decreased by one block");       break;     case AdjustmentEvent.TRACK:       System.out.println("The knob on the scrollbar was dragged");       break;     }     int value = evt.getValue();   } }