scrollbar.java
来自「纯java操作系统jnode,安装简单和操作简单的个人使用的Java操作系统」· Java 代码 · 共 640 行 · 第 1/2 页
JAVA
640 行
/* Scrollbar.java -- AWT Scrollbar widget
Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath 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 2, or (at your option)
any later version.
GNU Classpath 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 GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package java.awt;
import java.awt.event.AdjustmentEvent;
import java.awt.event.AdjustmentListener;
import java.awt.peer.ScrollbarPeer;
import java.io.Serializable;
import javax.accessibility.Accessible;
/**
* This class implements a scrollbar widget.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
* @author Tom Tromey <tromey@cygnus.com>
*/
public class Scrollbar extends Component implements Accessible, Adjustable, Serializable {
// FIXME: Serialization readObject/writeObject
/*
* Static Variables
*/
/**
* Constant indicating that a scrollbar is horizontal.
*/
public static final int HORIZONTAL = 0;
/**
* Constant indicating that a scrollbar is vertical.
*/
public static final int VERTICAL = 1;
// Serialization Constant
private static final long serialVersionUID = 8451667562882310543L;
/*************************************************************************/
/**
* @serial The amount by which the value of the scrollbar is changed
* when incrementing in line mode.
*/
private int lineIncrement;
/**
* @serial The amount by which the value of the scrollbar is changed
* when incrementing in page mode.
*/
private int pageIncrement;
/**
* @serial The maximum value for this scrollbar
*/
private int maximum;
/**
* @serial The minimum value for this scrollbar
*/
private int minimum;
/**
* @serial The orientation of this scrollbar, which will be either
* the <code>HORIZONTAL</code> or <code>VERTICAL</code> constant
* from this class.
*/
private int orientation;
/**
* @serial The current value of this scrollbar.
*/
private int value;
/**
* @serial The width of the scrollbar's thumb, which is relative
* to the minimum and maximum value of the scrollbar.
*/
private int visibleAmount;
// List of AdjustmentListener's.
private AdjustmentListener adjustment_listeners;
/*************************************************************************/
/*
* Constructors
*/
/**
* Initializes a new instance of <code>Scrollbar</code> with a
* vertical orientation and default values for all other parameters.
*
* @exception HeadlessException If GraphicsEnvironment.isHeadless() is true,
*/
public Scrollbar() {
this(VERTICAL);
}
/*************************************************************************/
/**
* Initializes a new instance of <code>Scrollbar</code> with the
* specified orientation and default values for all other parameters.
* The orientation must be either the constant <code>HORIZONTAL</code> or
* <code>VERTICAL</code> from this class. An incorrect value will throw
* an exception.
*
* @param orientation The orientation of this scrollbar.
*
* @exception HeadlessException If GraphicsEnvironment.isHeadless() is true,
* @exception IllegalArgumentException If the orientation value is not valid.
*/
public Scrollbar(int orientation) throws IllegalArgumentException {
this(orientation, 0, 10, 0, 100);
}
/*************************************************************************/
/**
* Initializes a new instance of <code>Scrollbar</code> with the
* specified parameters. The orientation must be either the constant
* <code>HORIZONTAL</code> or <code>VERTICAL</code>. An incorrect value
* will throw an exception. Inconsistent values for other parameters
* are silently corrected to valid values.
*
* @param orientation The orientation of this scrollbar.
* @param value The initial value of the scrollbar.
* @param visibleAmount The width of the scrollbar thumb.
* @param minimum The minimum value of the scrollbar.
* @param maximum The maximum value of the scrollbar.
*
* @exception HeadlessException If GraphicsEnvironment.isHeadless() is true,
* @exception IllegalArgumentException If the orientation value is not valid.
*/
public Scrollbar(int orientation, int value, int visibleAmount, int minimum, int maximum) throws IllegalArgumentException {
if (GraphicsEnvironment.isHeadless())
throw new HeadlessException();
if ((orientation != HORIZONTAL) && (orientation != VERTICAL))
throw new IllegalArgumentException("Bad orientation value: " + orientation);
this.orientation = orientation;
setValues(value, visibleAmount, minimum, maximum);
// Default is 1 according to online docs.
lineIncrement = 1;
pageIncrement = (maximum - minimum) / 5;
if (pageIncrement == 0)
pageIncrement = 1;
}
/*************************************************************************/
/*
* Instance Methods
*/
/**
* Returns the orientation constant for this object.
*
* @return The orientation constant for this object.
*/
public int getOrientation() {
return (orientation);
}
/*************************************************************************/
/**
* Sets the orientation of this scrollbar to the specified value. This
* value must be either the constant <code>HORIZONTAL</code> or
* <code>VERTICAL</code> from this class or an exception will be thrown.
*
* @param orientation The new orientation value.
*
* @exception IllegalArgumentException If the orientation value is not valid.
*/
public void setOrientation(int orientation) {
if ((orientation != HORIZONTAL) && (orientation != VERTICAL))
throw new IllegalArgumentException("Bad orientation value: " + orientation);
// FIXME: Communicate to peer? Or must this be called before peer creation?
this.orientation = orientation;
}
/*************************************************************************/
/**
* Returns the current value for this scrollbar.
*
* @return The current value for this scrollbar.
*/
public int getValue() {
return (value);
}
/*************************************************************************/
/**
* Sets the current value for this scrollbar to the specified value.
* If this is inconsistent with the minimum and maximum values for this
* scrollbar, the value is silently adjusted.
*
* @param value The new value for this scrollbar.
*/
public void setValue(int value) {
setValues(value, visibleAmount, minimum, maximum);
}
/*************************************************************************/
/**
* Returns the maximum value for this scrollbar.
*
* @return The maximum value for this scrollbar.
*/
public int getMaximum() {
return (maximum);
}
/*************************************************************************/
/**
* Sets the maximum value for this scrollbar to the specified value.
* If the value is less than the current minimum value, it is silent
* set to equal the minimum value.
*
* @param maximum The new maximum value for this scrollbar.
*/
public void setMaximum(int maximum) {
setValues(value, visibleAmount, minimum, maximum);
}
/*************************************************************************/
/**
* Returns the minimum value for this scrollbar.
*
* @return The minimum value for this scrollbar.
*/
public int getMinimum() {
return (minimum);
}
/*************************************************************************/
/**
* Sets the minimum value for this scrollbar to the specified value. If
* this is not consistent with the current value and maximum, it is
* silently adjusted to be consistent.
*
* @param minimum The new minimum value for this scrollbar.
*/
public void setMinimum(int minimum) {
setValues(value, visibleAmount, minimum, maximum);
}
/*************************************************************************/
/**
* Returns the width of the scrollbar's thumb, in units relative to the
* maximum and minimum value of the scrollbar.
*
* @return The width of the scrollbar's thumb.
*/
public int getVisibleAmount() {
return (visibleAmount);
}
/*************************************************************************/
/**
* Returns the width of the scrollbar's thumb, in units relative to the
* maximum and minimum value of the scrollbar.
*
* @return The width of the scrollbar's thumb.
*
* @deprecated This method is deprecated in favor of
* <code>getVisibleAmount()</code>.
*/
public int getVisible() {
return (getVisibleAmount());
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?