|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.awt.Component java.awt.Scrollbar
public class Scrollbar
Scrollbar
類別描述了一個滾動條,這是大家都很熟悉的使用者介面物件。滾動條提供了一個允許使用者在一定範圍的值中進行選擇的便捷方式。可以將以下三個垂直滾動條用作滑動塊控制元件,以選擇紅、綠和藍三種顏色的份量:
在此例中,每個滾動條都是使用類似於下面的程式碼創建的:
redSlider=new Scrollbar(Scrollbar.VERTICAL, 0, 1, 0, 255); add(redSlider);
此外,滾動條還可以表示某一範圍的值。例如,如果滾動條用於滾動文本,則可以使用「滑動塊(bubble)」(也稱為 "thumb" 或「滾動框」)的寬度來表示可視的文本數。下面是表示某一範圍的滾動條:
在這個例子中,滑動塊表示的值範圍是可見量。此例中的水平滾動條可以用以下程式碼來創建:
ranger = new Scrollbar(Scrollbar.HORIZONTAL, 0, 60, 0, 300); add(ranger);
注意,滾動條的實際最大值是 maximum
減去 visible amount
。在前面的例子中,因為 maximum
是 300,visible amount
是 60,所以實際最大值是 240。滾動條軌道的範圍是 0 - 300。滑動塊的左側指示了滾動條的值。
通常,使用者通過使用鼠標來改變滾動條的值。例如,使用者可以上下拖動滾動條的滑動塊,或單擊滾動條的單位增量或塊增量區域。鍵盤動作也能映射到滾動條。按照慣例,Page Up 和 Page Down 鍵等同於單擊滾動條的塊增量和塊減量區域。
當使用者改變滾動條的值時,滾動條接收一個 AdjustmentEvent
實例。滾動條處理此事件,將它傳遞給所有已註冊的偵聽器。
任何希望滾動條值發生變化時被通知的物件都應該實作包 java.awt.event
中定義的 AdjustmentListener
介面。調用 addAdjustmentListener
和 removeAdjustmentListener
方法能動態地添加或刪除偵聽器。
AdjustmentEvent
類別定義了五種調整事件,如下所示:
AdjustmentEvent.TRACK
。
AdjustmentEvent.UNIT_INCREMENT
。
AdjustmentEvent.UNIT_DECREMENT
。
AdjustmentEvent.BLOCK_INCREMENT
。按照慣例,如果使用者使用定義了 Page Up 鍵的鍵盤,則 Page Up 鍵是等效的。
AdjustmentEvent.BLOCK_DECREMENT
。按照慣例,如果使用者使用定義了 Page Down 鍵的鍵盤,則 Page Down 鍵是等效的。
為了獲得向後相容,JDK 1.0 事件系統也受到支持,但是該平臺的新版本不鼓勵使用它。JDK 1.1 中介紹的五種調整事件與以前該平臺版本中的有關滾動條的五種事件對應。下面列表給出了調整事件型別和它對應的 JDK 1.0 中的替換事件型別。
AdjustmentEvent.TRACK
替換 Event.SCROLL_ABSOLUTE
AdjustmentEvent.UNIT_INCREMENT
替換 Event.SCROLL_LINE_UP
AdjustmentEvent.UNIT_DECREMENT
替換 Event.SCROLL_LINE_DOWN
AdjustmentEvent.BLOCK_INCREMENT
替換 Event.SCROLL_PAGE_UP
AdjustmentEvent.BLOCK_DECREMENT
替換 Event.SCROLL_PAGE_DOWN
注:我們建議只對值的選擇使用 Scrollbar
。如果想在容器中實作一個可滾動的元件,那麼建議您使用 ScrollPane
。如果使用 Scrollbar
來實作這一目的,那麼可能會遇到繪製、鍵處理、大小調整和定位問題。
AdjustmentEvent
,
AdjustmentListener
,
序列化表格巢狀類別摘要 | |
---|---|
protected class |
Scrollbar.AccessibleAWTScrollBar
此類別實作 Scrollbar 類別的可存取性支持。 |
從類別 java.awt.Component 繼承的巢狀類別/介面 |
---|
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy |
欄位摘要 | |
---|---|
static int |
HORIZONTAL
指示一個水平滾動條的常數。 |
static int |
VERTICAL
指示一個垂直滾動條的常數。 |
從類別 java.awt.Component 繼承的欄位 |
---|
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT |
從介面 java.awt.Adjustable 繼承的欄位 |
---|
NO_ORIENTATION |
從介面 java.awt.image.ImageObserver 繼承的欄位 |
---|
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
建構子摘要 | |
---|---|
Scrollbar()
建構一個新的垂直滾動條。 |
|
Scrollbar(int orientation)
建構一個具有指定方向的新滾動條。 |
|
Scrollbar(int orientation,
int value,
int visible,
int minimum,
int maximum)
建構一個新的滾動條,它具有指定的方向、初始值、可見量、最小值和最大值。 |
方法摘要 | ||
---|---|---|
void |
addAdjustmentListener(AdjustmentListener l)
添加指定的調整偵聽器,以接收發自此滾動條的 AdjustmentEvent 實例。 |
|
void |
addNotify()
創建 Scrollbar 的同位體。 |
|
AccessibleContext |
getAccessibleContext()
獲取與此 Scrollbar 相關的 AccessibleContext 。 |
|
AdjustmentListener[] |
getAdjustmentListeners()
返回在此滾動條上所有已註冊調整偵聽器組成的陣列。 |
|
int |
getBlockIncrement()
獲取此滾動條的塊增量。 |
|
int |
getLineIncrement()
已過時。 從 JDK version 1.1 開始,由 getUnitIncrement() 取代。 |
|
|
getListeners(Class<T> listenerType)
返回目前已在此 Scrollbar 上註冊為 FooListener 的所有物件組成的陣列。 |
|
int |
getMaximum()
獲取此滾動條的最大值。 |
|
int |
getMinimum()
獲取此滾動條的最小值。 |
|
int |
getOrientation()
返回此滾動條的方向。 |
|
int |
getPageIncrement()
已過時。 從 JDK version 1.1 開始,由 getBlockIncrement() 取代。 |
|
int |
getUnitIncrement()
獲取此滾動條的單位增量。 |
|
int |
getValue()
獲取此滾動條的當前值。 |
|
boolean |
getValueIsAdjusting()
如果該值作為使用者執行動作的結果正處於更改過程中,則返回 true。 |
|
int |
getVisible()
已過時。 從 JDK version 1.1 開始,由 getVisibleAmount() 取代。 |
|
int |
getVisibleAmount()
獲取此滾動條的可見量。 |
|
protected String |
paramString()
返回表示此 Scrollbar 當前狀態的字元串表示形式。 |
|
protected void |
processAdjustmentEvent(AdjustmentEvent e)
處理此滾動條上發生的調整事件,方法是將其指派到任意已註冊的 AdjustmentListener 物件。 |
|
protected void |
processEvent(AWTEvent e)
處理在滾動條上發生的事件。 |
|
void |
removeAdjustmentListener(AdjustmentListener l)
移除指定的調整偵聽器,不再接收發自此滾動條的 AdjustmentEvent 實例。 |
|
void |
setBlockIncrement(int v)
設置此滾動條的塊增量。 |
|
void |
setLineIncrement(int v)
已過時。 從 JDK version 1.1 開始,由 setUnitIncrement(int) 取代。 |
|
void |
setMaximum(int newMaximum)
設置此滾動條的最大值。 |
|
void |
setMinimum(int newMinimum)
設置此滾動條的最小值。 |
|
void |
setOrientation(int orientation)
設置此滾動條的方向。 |
|
void |
setPageIncrement(int v)
已過時。 從 JDK version 1.1 開始,由 setBlockIncrement() 取代。 |
|
void |
setUnitIncrement(int v)
設置此滾動條的單位增量。 |
|
void |
setValue(int newValue)
將此滾動條的值設置為指定值。 |
|
void |
setValueIsAdjusting(boolean b)
設置 valueIsAdjusting 屬性。 |
|
void |
setValues(int value,
int visible,
int minimum,
int maximum)
設置此滾動條的四個屬性值: value 、visibleAmount 、minimum 和 maximum 。 |
|
void |
setVisibleAmount(int newAmount)
設置此滾動條的可見量。 |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
欄位詳細資訊 |
---|
public static final int HORIZONTAL
public static final int VERTICAL
建構子詳細資訊 |
---|
public Scrollbar() throws HeadlessException
屬性 | 描述 | 預設值 |
---|---|---|
方向 | 指示滾動條是垂直的 或水平的 |
Scrollbar.VERTICAL |
值 | 控制滾動條的滑動塊 位置的值 |
0 |
可見量 | 滾動條範圍的可見量, 通常由滾動條的滑動塊 的大小表示 |
10 |
最小值 | 滾動條的最小值 | 0 |
最大值 | 滾動條的最大值 | 100 |
單元增量 | 在按下 Line Up 或 Line Down 鍵時, 或者單擊滾動條 的末端箭頭時, 值更改的量 |
1 |
塊增量 | 在按下 Page Up 或 Page Down 鍵時, 或在滑動塊的兩側 單擊滾動條軌道時, 值更改的量 |
10 |
HeadlessException
- 如果 GraphicsEnvironment.isHeadless() 返回 true。GraphicsEnvironment.isHeadless()
public Scrollbar(int orientation) throws HeadlessException
orientation
參數必須是 Scrollbar.HORIZONTAL
或 Scrollbar.VERTICAL
這兩個值之一,它們分別指示滾動條是水平滾動條,還是垂直滾動條。
orientation
- 指示滾動條的方向
IllegalArgumentException
- 在提供不合法的 orientation
參數值時
HeadlessException
- 如果 GraphicsEnvironment.isHeadless() 返回 true。GraphicsEnvironment.isHeadless()
public Scrollbar(int orientation, int value, int visible, int minimum, int maximum) throws HeadlessException
orientation
參數必須是 Scrollbar.HORIZONTAL
或 Scrollbar.VERTICAL
這兩個值之一,分別指示滾動條是水平滾動條,還是垂直滾動條。
為此建構子提供的參數受到 setValues(int, int, int, int)
中描述的約束 (Constraints) 的限制。
orientation
- 指示滾動條的方向。value
- 滾動條的初始值visible
- 滾動條的可見量,通常由滑動塊的大小表示minimum
- 滾動條的最小值maximum
- 滾動條的最大值
IllegalArgumentException
- 當提供不合法的 orientation
參數值時
HeadlessException
- 如果 GraphicsEnvironment.isHeadless() 返回 true。setValues(int, int, int, int)
,
GraphicsEnvironment.isHeadless()
方法詳細資訊 |
---|
public void addNotify()
Scrollbar
的同位體。此同位體允許在不更改 Scrollbar
功能的情況下修改其外觀。
Component
中的 addNotify
Component.isDisplayable()
,
Component.removeNotify()
public int getOrientation()
Adjustable
中的 getOrientation
Scrollbar.HORIZONTAL
或 Scrollbar.VERTICAL
setOrientation(int)
public void setOrientation(int orientation)
orientation
- 此滾動條的方向,可以是 Scrollbar.HORIZONTAL
或 Scrollbar.VERTICAL
IllegalArgumentException
- 如果為 orientation
提供的值是非法值getOrientation()
public int getValue()
Adjustable
中的 getValue
getMinimum()
,
getMaximum()
public void setValue(int newValue)
如果指定的值小於當前 minimum
或大於當前 maximum - visibleAmount
,則對 minimum
或 maximum - visibleAmount
進行適當的替換。
通常,程序應該只通過調用 setValues
更改滾動條的值。setValues
方法同時且同步地設置滾動條的最小值、最大值、可見量和值屬性,因此它們是一致的。
調用此方法不會觸發 AdjustmentEvent
。
Adjustable
中的 setValue
newValue
- 滾動條的新值setValues(int, int, int, int)
,
getValue()
,
getMinimum()
,
getMaximum()
public int getMinimum()
Adjustable
中的 getMinimum
getValue()
,
getMaximum()
public void setMinimum(int newMinimum)
在調用 setMinimum
時,最小值會發生更改,並且其他值(包括最大值、可視量和滾動條的當前值)都會隨新的最小值發生一致的更改。
通常,程序應該只通過調用 setValues
更改滾動條的最小值。setValues
方法同時且同步地設置滾動條的最小值、最大值、可見量和值屬性,因此它們是相互一致的。
注意,將最小值設置為 Integer.MAX_VALUE
將導致新的最小值被設置為 Integer.MAX_VALUE - 1
。
Adjustable
中的 setMinimum
newMinimum
- 此滾動條的新的最小值setValues(int, int, int, int)
,
setMaximum(int)
public int getMaximum()
Adjustable
中的 getMaximum
getValue()
,
getMinimum()
public void setMaximum(int newMaximum)
在調用 setMaximum
時,最大值會發生更改,並且其他值(包括最小值、可見量和滾動條的當前值)都會隨新的最大值發生一致的更改。
通常,程序應該只通過調用 setValues
更改滾動條的最大值。setValues
方法同時且同步地設置滾動條的最小值、最大值、可見量和值屬性,因此它們是相互一致的。
注意,將最大值設置為 Integer.MIN_VALUE
將導致新的最大值被設置為 Integer.MIN_VALUE + 1
。
Adjustable
中的 setMaximum
newMaximum
- 此滾動條的新的最大值setValues(int, int, int, int)
,
setMinimum(int)
public int getVisibleAmount()
當使用滾動條來選擇某一範圍的值時,可以使用可見量來表示當前可視值的範圍。滾動條的滑動塊(也稱為 thumb 或滾動框)的大小通常給出了滾動條範圍與可見量之間關係的直觀表示。
在滾動條的滑動塊不可移動時(例如,當它充斥滾動條軌道的整個長度時,或者當禁用滾動條時),它可能不被顯示。是否顯示滑動塊不會影響 getVisibleAmount
返回的值。
Adjustable
中的 getVisibleAmount
setVisibleAmount(int)
@Deprecated public int getVisible()
getVisibleAmount()
取代。
public void setVisibleAmount(int newAmount)
當使用滾動條來選擇某一範圍的值時,可以使用可見量來表示當前可視值的範圍。滾動條的滑動塊(也稱為 thumb 或滾動框)的大小通常給出了滾動條範圍與可見量之間關係的直觀表示。
在滾動條的滑動塊不可移動時(例如,當它充斥滾動條軌道的整個長度時,或者當禁用滾動條時),它可能不被顯示。是否顯示滑動塊不會影響 getVisibleAmount
返回的值。
如果提供的可見量小於 one
或大於當前 maximum - minimum
,則對 one
或 maximum - minimum
進行適當的替換。
通常,程序應該只通過調用 setValues
更改滾動條的值。setValues
方法同時且同步地設置滾動條的最小值、最大值、可見量和值屬性,因此它們是一致的。
Adjustable
中的 setVisibleAmount
newAmount
- 新的可見量getVisibleAmount()
,
setValues(int, int, int, int)
public void setUnitIncrement(int v)
單位增量是使用者啟動滾動條的單位增量區域時增加或減少的值,通常通過鼠標或鍵盤來實作,滾動條將該動作作為一個調整事件來接收。單位增量必須大於零。試圖將單位增量設置為小於 1 的值將使該值被設置為 1。
Adjustable
中的 setUnitIncrement
v
- 滾動條值增加或減少的量getUnitIncrement()
@Deprecated public void setLineIncrement(int v)
setUnitIncrement(int)
取代。
public int getUnitIncrement()
單位增量是使用者啟動滾動條的單位增量區域時增加或減少的值,通常通過鼠標或鍵盤來實作,滾動條將該動作作為一個調整事件來接收。單位增量必須大於零。
Adjustable
中的 getUnitIncrement
setUnitIncrement(int)
@Deprecated public int getLineIncrement()
getUnitIncrement()
取代。
public void setBlockIncrement(int v)
塊增量是使用者啟動滾動條的塊增量區域時增加或減少的值,通常通過鼠標或鍵盤來實作,滾動條將該動作作為一個調整事件來接收。塊增量必須大於零。試圖將塊增量設置為小於 1 的值將使該值被設置為 1。
Adjustable
中的 setBlockIncrement
v
- 滾動條值增加或減少的量getBlockIncrement()
@Deprecated public void setPageIncrement(int v)
setBlockIncrement()
取代。
public int getBlockIncrement()
塊增量是使用者啟動滾動條的塊增量區域時增加或減少的值,通常通過鼠標或鍵盤來實作,滾動條將該動作作為一個調整事件來接收。塊增量必須大於零。
Adjustable
中的 getBlockIncrement
setBlockIncrement(int)
@Deprecated public int getPageIncrement()
getBlockIncrement()
取代。
public void setValues(int value, int visible, int minimum, int maximum)
value
、visibleAmount
、minimum
和 maximum
。如果為這些屬性提供的值是不一致或不正確的,則將更改它們,確保它們一致。
此方法同時且同步地設置滾動條的四個屬性值,以確保它們相互一致。它強制執行了以下約束:maximum
必須大於 minimum
,maximum - minimum
不能大於 Integer.MAX_VALUE
,visibleAmount
必須大於零。visibleAmount
不能大於 maximum - minimum
,value
不能小於 minimum
,並且 value
不能大於 maximum - visibleAmount
調用此方法不會觸發 AdjustmentEvent
。
value
- 當前視窗的位置visible
- 滾動條的可見量minimum
- 滾動條的最小值maximum
- 滾動條的最大值setMinimum(int)
,
setMaximum(int)
,
setVisibleAmount(int)
,
setValue(int)
public boolean getValueIsAdjusting()
valueIsAdjusting
屬性的值setValueIsAdjusting(boolean)
public void setValueIsAdjusting(boolean b)
valueIsAdjusting
屬性。
b
- 新的調整正處於進行 (adjustment-in-progress) 狀態getValueIsAdjusting()
public void addAdjustmentListener(AdjustmentListener l)
AdjustmentEvent
實例。如果 l 為 null
,則不會拋出異常並且不執行任何動作。
有關 AWT 的執行緒模型的詳細資訊,請參閱 AWT 執行緒問題。
Adjustable
中的 addAdjustmentListener
l
- 調整偵聽器removeAdjustmentListener(java.awt.event.AdjustmentListener)
,
getAdjustmentListeners()
,
AdjustmentEvent
,
AdjustmentListener
public void removeAdjustmentListener(AdjustmentListener l)
AdjustmentEvent
實例。如果 l 為 null
,則不會拋出異常並且不執行任何動作。
有關 AWT 的執行緒模型的詳細資訊,請參閱 AWT 執行緒問題。
Adjustable
中的 removeAdjustmentListener
l
- 調整偵聽器addAdjustmentListener(java.awt.event.AdjustmentListener)
,
getAdjustmentListeners()
,
AdjustmentEvent
,
AdjustmentListener
public AdjustmentListener[] getAdjustmentListeners()
AdjustmentListener
,如果當前沒有已註冊的調整偵聽器,則返回一個空陣列addAdjustmentListener(java.awt.event.AdjustmentListener)
,
removeAdjustmentListener(java.awt.event.AdjustmentListener)
,
AdjustmentEvent
,
AdjustmentListener
public <T extends EventListener> T[] getListeners(Class<T> listenerType)
Scrollbar
上註冊為 FooListener
的所有物件組成的陣列。FooListener
是用 addFooListener
方法註冊的。
可以使用 class 文字值來指定 listenerType
參數,如 FooListener.class
。例如,可以使用以下程式碼來查詢 Scrollbar
c
的鼠標偵聽器:
MouseListener[] mls = (MouseListener[])(c.getListeners(MouseListener.class));如果不存在這樣的偵聽器,則此方法將返回一個空陣列。
Component
中的 getListeners
listenerType
- 所請求的偵聽器型別;此參數應該指定一個從 java.util.EventListener
繼承的介面
FooListener
註冊的所有物件組成的陣列,如果尚未添加這樣的偵聽器,則返回一個空陣列
ClassCastException
- 如果 listenerType
未指定一個實作 java.util.EventListener
的類別或介面Component.getComponentListeners()
,
Component.getFocusListeners()
,
Component.getHierarchyListeners()
,
Component.getHierarchyBoundsListeners()
,
Component.getKeyListeners()
,
Component.getMouseListeners()
,
Component.getMouseMotionListeners()
,
Component.getMouseWheelListeners()
,
Component.getInputMethodListeners()
,
#getPropertyChangeListener
protected void processEvent(AWTEvent e)
AdjustmentEvent
實例,則此方法將調用 processAdjustmentEvent
方法。否則,它將調用其父級類別的 processEvent
方法。
注意,如果事件參數為 null
,則行為是不確定的,並且可能導致異常。
Component
中的 processEvent
e
- 事件AdjustmentEvent
,
processAdjustmentEvent(java.awt.event.AdjustmentEvent)
protected void processAdjustmentEvent(AdjustmentEvent e)
AdjustmentListener
物件。
如果沒有在元件上啟用調整事件,則不調用此方法。出現以下情況之一時啟用調整事件:
addAdjustmentListener
註冊 AdjustmentListener
物件。
enableEvents
啟用調整事件。
注意,如果事件參數為 null
,則行為是不確定的,並且可能導致異常。
e
- 調整事件AdjustmentEvent
,
AdjustmentListener
,
addAdjustmentListener(java.awt.event.AdjustmentListener)
,
Component.enableEvents(long)
protected String paramString()
Scrollbar
當前狀態的字元串表示形式。此方法僅用於除錯目的,對於各個實作,所返回字元串的內容和格式可能有所不同。返回的字元串可以為空,但不可以為 null
。
Component
中的 paramString
public AccessibleContext getAccessibleContext()
Scrollbar
相關的 AccessibleContext
。對於滾動條,AccessibleContext
採用的是 AccessibleAWTScrollBar
的形式。如有必要,可以創建一個新的 AccessibleAWTScrollBar
實例。
Accessible
中的 getAccessibleContext
Component
中的 getAccessibleContext
ScrollBar
的 AccessibleContext
的 AccessibleAWTScrollBar
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。