Java JScrollPane defaultAutoScroll(JComponent comp, Point cursorLocn)

Here you can find the source of defaultAutoScroll(JComponent comp, Point cursorLocn)

Description

Implements autoscrolling.

License

Open Source License

Parameter

Parameter Description
comp the component
cursorLocn the cursor location

Declaration

public static void defaultAutoScroll(JComponent comp, Point cursorLocn) 

Method Source Code

//package com.java2s;
/*//from   w  ww . ja  va2  s.  c  om
 * Copyright appNativa Inc. All Rights Reserved.
 *
 * This file is part of the Real-time Application Rendering Engine (RARE).
 *
 * RARE is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 */

import java.awt.Point;
import java.awt.Rectangle;

import javax.swing.JComponent;

public class Main {
    final static int AUTOSCROLL_INSET_SIZE = 20;
    final static int SCROLL_AMOUNT = 10;

    /**
     * Implements autoscrolling.
     *
     * @param comp
     *          the component
     * @param cursorLocn
     *          the cursor location
     */
    public static void defaultAutoScroll(JComponent comp, Point cursorLocn) {
        Rectangle visible = comp.getVisibleRect();
        int x = 0, y = 0, width = 0, height = 0;

        // Scroll left.
        if (cursorLocn.x < visible.x + AUTOSCROLL_INSET_SIZE) {
            x = -SCROLL_AMOUNT;
            width = SCROLL_AMOUNT;
        } // Scroll right.
        else if (cursorLocn.x > visible.x + visible.width - AUTOSCROLL_INSET_SIZE) {
            x = visible.width + SCROLL_AMOUNT;
            width = SCROLL_AMOUNT;
        }

        // Scroll up.
        if (cursorLocn.y < visible.y + AUTOSCROLL_INSET_SIZE) {
            y = -SCROLL_AMOUNT;
            height = SCROLL_AMOUNT;
        } // Scroll down.
        else if (cursorLocn.y > visible.y + visible.height - AUTOSCROLL_INSET_SIZE) {
            y = visible.height + SCROLL_AMOUNT;
            height = SCROLL_AMOUNT;
        }

        ((JComponent) comp.getParent()).scrollRectToVisible(new Rectangle(x, y, width, height));
    }
}

Related

  1. bindHorizontalScrolling(JScrollPane jScrollPane1, JScrollPane jScrollPane2)
  2. buildLabeledScroller(String label, Component contents)
  3. createJScrollPane(JComponent component)
  4. createScrollPane(JComponent content)
  5. createSelfManagedScrollPane(final Component view, final JComponent parentToRevalidate)
  6. defaultGetAutoscrollInsets(JComponent comp)
  7. findScrollPane(Component c)
  8. findScrollPane(Component component)
  9. getContainingScroll(Component comp)