• e822. 监听JScrollPane的滚动


    A scrollbar in a scroll pane fires adjustment events whenever its value changes.

        // Create a scrollable text area
        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 {
            // This method is called whenever the value of a scrollbar is changed,
            // either by the user or programmatically.
            public void adjustmentValueChanged(AdjustmentEvent evt) {
                Adjustable source = evt.getAdjustable();
        
                // getValueIsAdjusting() returns true if the user is currently
                // dragging the scrollbar's knob and has not picked a final value
                if (evt.getValueIsAdjusting()) {
                    // The user is dragging the knob
                    return;
                }
        
                // Determine which scrollbar fired the event
                int orient = source.getOrientation();
                if (orient == Adjustable.HORIZONTAL) {
                    // Event from horizontal scrollbar
                } else {
                    // Event from vertical scrollbar
                }
        
                // Determine the type of event
                int type = evt.getAdjustmentType();
                switch (type) {
                  case AdjustmentEvent.UNIT_INCREMENT:
                      // Scrollbar was increased by one unit
                      break;
                  case AdjustmentEvent.UNIT_DECREMENT:
                      // Scrollbar was decreased by one unit
                      break;
                  case AdjustmentEvent.BLOCK_INCREMENT:
                      // Scrollbar was increased by one block
                      break;
                  case AdjustmentEvent.BLOCK_DECREMENT:
                      // Scrollbar was decreased by one block
                      break;
                  case AdjustmentEvent.TRACK:
                      // The knob on the scrollbar was dragged
                      break;
                }
        
                // Get current value
                int value = evt.getValue();
            }
        }
    
    Related Examples
  • 相关阅读:
    [bbk4999] 第100集 第12章 数据移植 06
    [bbk4992] 第98集 第12章 数据移植 04
    [bbk0000] 第101集 第12章 数据移植 08 本章案例 > 使用ORACLE_DATAPUMP擎创建外部表
    PL/SQL
    [zz]Python:time.clock() vs. time.time()
    MVC简介
    ajax_get/post_两级联动
    Ajax
    JAVAUML
    类与接口的区别
  • 原文地址:https://www.cnblogs.com/borter/p/9596216.html
Copyright © 2020-2023  润新知