Java Code Examples for javax.swing.JScrollBar#getModel()

The following examples show how to use javax.swing.JScrollBar#getModel() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: mxGraphComponent.java    From blog-codes with Apache License 2.0 6 votes vote down vote up
/**
 *
 */
protected void maintainScrollBar(boolean horizontal, double factor,
		boolean center)
{
	JScrollBar scrollBar = (horizontal) ? getHorizontalScrollBar()
			: getVerticalScrollBar();

	if (scrollBar != null)
	{
		BoundedRangeModel model = scrollBar.getModel();
		int newValue = (int) Math.round(model.getValue() * factor)
				+ (int) Math.round((center) ? (model.getExtent()
						* (factor - 1) / 2) : 0);
		model.setValue(newValue);
	}
}
 
Example 2
Source File: SeaGlassScrollPaneUI.java    From seaglass with Apache License 2.0 6 votes vote down vote up
public void stateChanged(ChangeEvent e) {
    JViewport viewport = scrollpane.getViewport();

    if (viewport != null) {
        if (e.getSource() == viewport) {
            viewportStateChanged(e);
        } else {
            JScrollBar hsb = scrollpane.getHorizontalScrollBar();
            if (hsb != null && e.getSource() == hsb.getModel()) {
                hsbStateChanged(viewport, e);
            } else {
                JScrollBar vsb = scrollpane.getVerticalScrollBar();
                if (vsb != null && e.getSource() == vsb.getModel()) {
                    vsbStateChanged(viewport, e);
                }
            }
        }
    }
}
 
Example 3
Source File: mxGraphComponent.java    From blog-codes with Apache License 2.0 5 votes vote down vote up
/**
 * 
 */
public void scrollToCenter(boolean horizontal)
{
	JScrollBar scrollBar = (horizontal) ? getHorizontalScrollBar()
			: getVerticalScrollBar();

	if (scrollBar != null)
	{
		final BoundedRangeModel model = scrollBar.getModel();
		final int newValue = ((model.getMaximum()) / 2) - model.getExtent()
				/ 2;
		model.setValue(newValue);
	}
}
 
Example 4
Source File: SeaGlassScrollPaneUI.java    From seaglass with Apache License 2.0 5 votes vote down vote up
private void sbPropertyChange(PropertyChangeEvent e) {
    String propertyName = e.getPropertyName();
    Object source = e.getSource();

    if ("model" == propertyName) {
        JScrollBar sb = scrollpane.getVerticalScrollBar();
        BoundedRangeModel oldModel = (BoundedRangeModel) e.getOldValue();
        ChangeListener cl = null;

        if (source == sb) {
            cl = vsbChangeListener;
        } else if (source == scrollpane.getHorizontalScrollBar()) {
            sb = scrollpane.getHorizontalScrollBar();
            cl = hsbChangeListener;
        }
        if (cl != null) {
            if (oldModel != null) {
                oldModel.removeChangeListener(cl);
            }
            if (sb.getModel() != null) {
                sb.getModel().addChangeListener(cl);
            }
        }
    } else if ("componentOrientation" == propertyName) {
        if (source == scrollpane.getHorizontalScrollBar()) {
            JScrollBar hsb = scrollpane.getHorizontalScrollBar();
            JViewport viewport = scrollpane.getViewport();
            Point p = viewport.getViewPosition();
            if (scrollpane.getComponentOrientation().isLeftToRight()) {
                p.x = hsb.getValue();
            } else {
                p.x = viewport.getViewSize().width - viewport.getExtentSize().width - hsb.getValue();
            }
            viewport.setViewPosition(p);
        }
    }
}
 
Example 5
Source File: SmartScroller.java    From mars-sim with GNU General Public License v3.0 4 votes vote down vote up
private void checkScrollBar(AdjustmentEvent e)
{
	//  The scroll bar listModel contains information needed to determine
	//  whether the viewport should be repositioned or not.

	JScrollBar scrollBar = (JScrollBar)e.getSource();
	BoundedRangeModel listModel = scrollBar.getModel();
	int value = listModel.getValue();
	int extent = listModel.getExtent();
	int maximum = listModel.getMaximum();

	boolean valueChanged = previousValue != value;
	boolean maximumChanged = previousMaximum != maximum;

	//  Check if the user has manually repositioned the scrollbar

	if (valueChanged && !maximumChanged)
	{
		if (viewportPosition == START)
			adjustScrollBar = value != 0;
		else
			adjustScrollBar = value + extent >= maximum;
	}

	//  Reset the "value" so we can reposition the viewport and
	//  distinguish between a user scroll and a program scroll.
	//  (ie. valueChanged will be false on a program scroll)

	if (adjustScrollBar && viewportPosition == END)
	{
		//  Scroll the viewport to the end.
		scrollBar.removeAdjustmentListener( this );
		value = maximum - extent;
		scrollBar.setValue( value );
		scrollBar.addAdjustmentListener( this );
	}

	if (adjustScrollBar && viewportPosition == START)
	{
		//  Keep the viewport at the same relative viewportPosition
		scrollBar.removeAdjustmentListener( this );
		value = value + maximum - previousMaximum;
		scrollBar.setValue( value );
		scrollBar.addAdjustmentListener( this );
	}

	previousValue = value;
	previousMaximum = maximum;
}