|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object javax.swing.plaf.ComponentUI javax.swing.plaf.ListUI javax.swing.plaf.basic.BasicListUI
public class BasicListUI
ListUI
的可擴展實作。
多個列表之間不能共享 BasicListUI
實例。
巢狀類別摘要 | |
---|---|
class |
BasicListUI.FocusHandler
此內部類別因編譯器故障而被標記為“公開”。 |
class |
BasicListUI.ListDataHandler
在 installUI 時和只要 JList.model 屬性更改時就要添加到 JList 模型的 ListDataListener。 |
class |
BasicListUI.ListSelectionHandler
在 installUI 時和只要 JList.selectionModel 屬性更改時就要添加到 JList 模型的 ListSelectionListener。 |
class |
BasicListUI.MouseInputHandler
鼠標輸入和 JList 的焦點處理。 |
class |
BasicListUI.PropertyChangeHandler
在 installUI 時添加到 JList 的 PropertyChangeListener。 |
欄位摘要 | |
---|---|
protected int |
cellHeight
|
protected int[] |
cellHeights
|
protected static int |
cellRendererChanged
|
protected int |
cellWidth
|
protected static int |
fixedCellHeightChanged
|
protected static int |
fixedCellWidthChanged
|
protected FocusListener |
focusListener
|
protected static int |
fontChanged
|
protected JList |
list
|
protected ListDataListener |
listDataListener
|
protected ListSelectionListener |
listSelectionListener
|
protected static int |
modelChanged
|
protected MouseInputListener |
mouseInputListener
|
protected PropertyChangeListener |
propertyChangeListener
|
protected static int |
prototypeCellValueChanged
|
protected CellRendererPane |
rendererPane
|
protected static int |
selectionModelChanged
|
protected int |
updateLayoutStateNeeded
|
建構子摘要 | |
---|---|
BasicListUI()
|
方法摘要 | |
---|---|
protected int |
convertRowToY(int row)
返回指定行的原點的 JList 相對 Y 坐標,如果 row 無效,則返回 -1。 |
protected int |
convertYToRow(int y0)
基於當前佈局,將 JList 相對坐標轉換為包含它的行。 |
protected FocusListener |
createFocusListener()
|
protected ListDataListener |
createListDataListener()
創建在需要時由模型添加到 JList 的 ListDataListener 的實例。 |
protected ListSelectionListener |
createListSelectionListener()
創建在需要時由 selectionModel 添加到 JList 的 ListSelectionHandler 的實例。 |
protected MouseInputListener |
createMouseInputListener()
創建實作 MouseInputListener 的委託。 |
protected PropertyChangeListener |
createPropertyChangeListener()
創建由 installUI() 添加到 JList 的 PropertyChangeHandler 的實例。 |
static ComponentUI |
createUI(JComponent list)
返回 BasicListUI 的新實例。 |
int |
getBaseline(JComponent c,
int width,
int height)
返回基線。 |
Component.BaselineResizeBehavior |
getBaselineResizeBehavior(JComponent c)
返回一個列舉,它指示該元件的基線如何隨大小的改變而發生更改。 |
Rectangle |
getCellBounds(JList list,
int index1,
int index2)
返回給定列表坐標系統中的有界矩形,單元的範圍由兩個索引指定。 |
Dimension |
getPreferredSize(JComponent c)
列表的 preferredSize 依賴於佈局方向。 |
protected int |
getRowHeight(int row)
返回基於當前佈局的指定行的高度。 |
Point |
indexToLocation(JList list,
int index)
返回列表坐標系統中給定 JList 中指定項的原點。 |
protected void |
installDefaults()
初始化 JList 屬性(如字體、前景和背景)並添加 CellRendererPane。 |
protected void |
installKeyboardActions()
在與 BasicListUI 關聯的 JList 上註冊鍵盤綁定。 |
protected void |
installListeners()
為 JList、其模型及其 selectionModel 創建並安裝偵聽器。 |
void |
installUI(JComponent c)
按順序調用 installDefaults() 、installListeners() 和 installKeyboardActions() 來初始化 this.list 。 |
int |
locationToIndex(JList list,
Point location)
返回指定 JList 中與列表坐標系統中給定位置最接近的單元索引。 |
protected void |
maybeUpdateLayoutState()
如果 updateLayoutStateNeeded 為非 0,則調用 updateLayoutState() 並重置 updateLayoutStateNeeded。 |
void |
paint(Graphics g,
JComponent c)
繪製與 Graphics 物件 clipRect 相交的行。 |
protected void |
paintCell(Graphics g,
int row,
Rectangle rowBounds,
ListCellRenderer cellRenderer,
ListModel dataModel,
ListSelectionModel selModel,
int leadIndex)
繪製一個 List 單元格:計算相關狀態,獲取“橡皮圖章”單元格渲染器元件,然後使用 CellRendererPane 來繪製它。 |
protected void |
selectNextIndex()
選擇下一行並強行使其可見。 |
protected void |
selectPreviousIndex()
選擇前一行並強行使其可見。 |
protected void |
uninstallDefaults()
將尚未顯式覆寫的 JList 屬性設置為 null。 |
protected void |
uninstallKeyboardActions()
註銷根據 installKeyboardActions 安裝的鍵盤動作。 |
protected void |
uninstallListeners()
移除 JList、其模型及其 selectionModel 的偵聽器。 |
void |
uninstallUI(JComponent c)
按順序調用 uninstallListeners() 、uninstallKeyboardActions() 和 uninstallDefaults() 來取消初始化 this.list 。 |
protected void |
updateLayoutState()
基於當前字體和 fixedCellWidth、fixedCellHeight 和 prototypeCellValue 的當前值重新計算 cellHeight(一個或多個)和 cellWidth 的值。 |
從類別 javax.swing.plaf.ComponentUI 繼承的方法 |
---|
contains, getAccessibleChild, getAccessibleChildrenCount, getMaximumSize, getMinimumSize, update |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
欄位詳細資訊 |
---|
protected JList list
protected CellRendererPane rendererPane
protected FocusListener focusListener
protected MouseInputListener mouseInputListener
protected ListSelectionListener listSelectionListener
protected ListDataListener listDataListener
protected PropertyChangeListener propertyChangeListener
protected int[] cellHeights
protected int cellHeight
protected int cellWidth
protected int updateLayoutStateNeeded
protected static final int modelChanged
protected static final int selectionModelChanged
protected static final int fontChanged
protected static final int fixedCellWidthChanged
protected static final int fixedCellHeightChanged
protected static final int prototypeCellValueChanged
protected static final int cellRendererChanged
建構子詳細資訊 |
---|
public BasicListUI()
方法詳細資訊 |
---|
protected void paintCell(Graphics g, int row, Rectangle rowBounds, ListCellRenderer cellRenderer, ListModel dataModel, ListSelectionModel selModel, int leadIndex)
paint(java.awt.Graphics, javax.swing.JComponent)
public void paint(Graphics g, JComponent c)
ComponentUI
中的 paint
g
- 將在其中進行繪製的 Graphics
上下文c
- 將繪製的元件;此參數常被忽略,但如果 UI 物件是無狀態的並由多個元件共享,則可以使用該參數paintCell(java.awt.Graphics, int, java.awt.Rectangle, javax.swing.ListCellRenderer, javax.swing.ListModel, javax.swing.ListSelectionModel, int)
public int getBaseline(JComponent c, int width, int height)
ComponentUI
中的 getBaseline
c
- 為其請求基線的 JComponent
width
- 為其獲取基線的寬度height
- 為其獲取基線的高度
NullPointerException
- 如果 c
為 null
IllegalArgumentException
- 如果寬度或高度 < 0JComponent.getBaseline(int, int)
public Component.BaselineResizeBehavior getBaselineResizeBehavior(JComponent c)
ComponentUI
中的 getBaselineResizeBehavior
c
- 為其返回調整大小行為的 JComponent
NullPointerException
- 如果 c
為 null
JComponent.getBaseline(int, int)
public Dimension getPreferredSize(JComponent c)
佈局方向 | 首選大小 |
---|---|
JList.VERTICAL | 列表的 preferredSize 是行的總高度和單元格的最大寬度。如果指定了 JList.fixedCellHeight,則行的總高度為 (cellVerticalMargins + fixedCellHeight) * model.getSize(),其中,rowVerticalMargins 是為繪製黃色焦點輪廓所分派的空間。同樣,如果指定了 fixedCellWidth,則使用它即可。 |
JList.VERTICAL_WRAP | 如果可見行計數大於 0,則 preferredHeight 為最大單元格高度 * visibleRowCount。如果可見行計數 <= 0,則首選高度為列表的當前高度或最大單元格除錯,取其中的較大者。首選寬度則為最大單元格寬度 * 所需的列數。其中所需的列數為 list.height / 最大單元格高度。最大單元格高度或者是固定單元高度,或者通過對所有單元格進行迭代以從 ListCellRenderer 中尋找最大高度來確定。 |
JList.HORIZONTAL_WRAP | 如果可見行計數大於 0,則 preferredHeight 即為最大單元格高度 * adjustedRowCount。其中 visibleRowCount 用於確定列數。因為此操作進行水平佈置,所以行數將根據列數來確定。例如,假設一個模型有 10 個項和 8 個可見行計數。顯示此模型所需的列數是 2,但是不再需要 8 行來顯示,只需 5 行,因此 adjustedRowCount 為 5。
如果可見行計數 <= 0,則首選高度由列數規定,列數的多少以適合 |
Insets
根據 list.getInsets()
確定。
ComponentUI
中的 getPreferredSize
c
- JList 元件。
JComponent.getPreferredSize()
,
LayoutManager.preferredLayoutSize(java.awt.Container)
protected void selectPreviousIndex()
JList.ensureIndexIsVisible(int)
protected void selectNextIndex()
JList.ensureIndexIsVisible(int)
protected void installKeyboardActions()
BasicListUI
關聯的 JList
上註冊鍵盤綁定。此方法在 installUI() 時調用。
installUI(javax.swing.JComponent)
protected void uninstallKeyboardActions()
installKeyboardActions
安裝的鍵盤動作。此方法在 uninstallUI() 時調用,該時刻子類別應該確保已從此處移除在 installUI 時註冊的所有鍵盤動作。
installUI(javax.swing.JComponent)
protected void installListeners()
installUI(javax.swing.JComponent)
,
uninstallListeners()
protected void uninstallListeners()
uninstallUI(javax.swing.JComponent)
,
installListeners()
protected void installDefaults()
uninstallDefaults()
,
installUI(javax.swing.JComponent)
,
CellRendererPane
protected void uninstallDefaults()
installDefaults()
,
uninstallUI(javax.swing.JComponent)
,
CellRendererPane
public void installUI(JComponent c)
installDefaults()
、installListeners()
和 installKeyboardActions()
來初始化 this.list
。
ComponentUI
中的 installUI
c
- 將安裝此 UI 委託的元件installDefaults()
,
installListeners()
,
installKeyboardActions()
public void uninstallUI(JComponent c)
uninstallListeners()
、uninstallKeyboardActions()
和 uninstallDefaults()
來取消初始化 this.list
。將 this.list 設置為 null。
ComponentUI
中的 uninstallUI
c
- 從中移除此 UI 委託的元件;此參數常被忽略,但如果 UI 物件是無狀態的並由多個元件共享,則可以使用該參數uninstallListeners()
,
uninstallKeyboardActions()
,
uninstallDefaults()
public static ComponentUI createUI(JComponent list)
public int locationToIndex(JList list, Point location)
JList
中與列表坐標系統中給定位置最接近的單元索引。要確定該單元是否真正包含指定位置,可比較該點與單元的邊界,單元的邊界通過 getCellBounds
提供。如果列表的網要為空,則此方法返回 -1
。
ListUI
中的 locationToIndex
list
- 列表location
- 點的坐標
-1
NullPointerException
- 如果 location
為 nullpublic Point indexToLocation(JList list, int index)
JList
中指定項的原點。如果索引無效,則返回 null
。
ListUI
中的 indexToLocation
list
- 列表index
- 單元索引
null
public Rectangle getCellBounds(JList list, int index1, int index2)
如果較小索引超出單元的列表範圍,則此方法返回 null
。如果較小索引有效,但較大索引超出列表範圍,則只返回第一個索引的邊界。否則,返回有效範圍的邊界。
ListUI
中的 getCellBounds
list
- 列表index1
- 範圍內第一個索引index2
- 範圍內第二個索引
null
protected int getRowHeight(int row)
convertYToRow(int)
,
convertRowToY(int)
,
updateLayoutState()
protected int convertYToRow(int y0)
getRowHeight(int)
,
updateLayoutState()
protected int convertRowToY(int row)
getRowHeight(int)
,
updateLayoutState()
protected void maybeUpdateLayoutState()
updateLayoutState()
protected void updateLayoutState()
maybeUpdateLayoutState()
protected MouseInputListener createMouseInputListener()
class MyListUI extends BasicListUI { protected MouseInputListener createMouseInputListener() { return new MyMouseInputHandler(); } public class MyMouseInputHandler extends MouseInputHandler { public void mouseMoved(MouseEvent e) { // do some extra work when the mouse moves super.mouseMoved(e); } } }
BasicListUI.MouseInputHandler
,
installUI(javax.swing.JComponent)
protected FocusListener createFocusListener()
protected ListSelectionListener createListSelectionListener()
class MyListUI extends BasicListUI { protected ListSelectionListener createListSelectionListener() { return new MySelectionListener(); } public class MySelectionListener extends ListSelectionHandler { public void valueChanged(ListSelectionEvent e) { // do some extra work when the selection changes super.valueChange(e); } } }
BasicListUI.ListSelectionHandler
,
installUI(javax.swing.JComponent)
protected ListDataListener createListDataListener()
class MyListUI extends BasicListUI { protected ListDataListener createListDataListener() { return new MyListDataListener(); } public class MyListDataListener extends ListDataHandler { public void contentsChanged(ListDataEvent e) { // do some extra work when the models contents change super.contentsChange(e); } } }
ListDataListener
,
JList.getModel()
,
installUI(javax.swing.JComponent)
protected PropertyChangeListener createPropertyChangeListener()
class MyListUI extends BasicListUI { protected PropertyChangeListener createPropertyChangeListener() { return new MyPropertyChangeListener(); } public class MyPropertyChangeListener extends PropertyChangeHandler { public void propertyChange(PropertyChangeEvent e) { if (e.getPropertyName().equals("model")) { // do some extra work when the model changes } super.propertyChange(e); } } }
PropertyChangeListener
,
installUI(javax.swing.JComponent)
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。