public class BasicListUI extends ListUI
ListUI
。
BasicListUI
不能在多个列表之间共享实例。
Modifier and Type | Class and Description |
---|---|
class |
BasicListUI.FocusHandler
这个类应该被视为一个“受保护”的内部类。
|
class |
BasicListUI.ListDataHandler
在installUI时添加到JLists模型的ListDataListener以及JList.model属性更改时。
|
class |
BasicListUI.ListSelectionHandler
在installUI时添加到JLists选择模型的ListSelectionListener,以及JList.selectionModel属性更改时。
|
class |
BasicListUI.MouseInputHandler
鼠标输入和JList的焦点处理。
|
class |
BasicListUI.PropertyChangeHandler
在InstallUI时添加到JList的PropertyChangeListener。
|
Modifier and Type | Field and Description |
---|---|
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 |
Constructor and Description |
---|
BasicListUI() |
Modifier and Type | Method and Description |
---|---|
protected int |
convertRowToY(int row)
返回指定行的原点的JList相对Y坐标,如果行无效则返回-1。
|
protected int |
convertYToRow(int y0)
根据当前布局,将JList相对坐标转换为包含它的行。
|
protected FocusListener |
createFocusListener() |
protected ListDataListener |
createListDataListener()
创建根据需要通过模型添加到JLists的ListDataListener的实例。
|
protected ListSelectionListener |
createListSelectionListener()
创建根据需要通过selectionModel添加到JLists中的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()
初始化字体,前景和背景等列表属性,并添加CellRendererPane。
|
protected void |
installKeyboardActions()
注册在键盘绑定
JList ,该
BasicListUI 相关联。
|
protected void |
installListeners()
创建并安装JList,其模型及其selectionModel的侦听器。
|
void |
installUI(JComponent c)
初始化
this.list 拨打
installDefaults() ,
installListeners() 和
installKeyboardActions() 秩序。
|
int |
locationToIndex(JList list, Point location)
返回指定的细胞指数
JList 列表中的坐标系中最接近指定位置。
|
protected void |
maybeUpdateLayoutState()
如果updateLayoutStateNeeded不为零,请调用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)
绘制一个列表单元格:计算相关状态,获取“橡皮图章”单元格渲染器组件,然后使用CellRendererPane绘制。
|
protected void |
selectNextIndex()
选择上一行并强制它可见。
|
protected void |
selectPreviousIndex()
选择上一行并强制它可见。
|
protected void |
uninstallDefaults()
将未明确覆盖的列表属性设置为
null 。
|
protected void |
uninstallKeyboardActions()
从
installKeyboardActions 安装的键盘操作。
|
protected void |
uninstallListeners()
从JList,其模型及其selectionModel中移除侦听器。
|
void |
uninstallUI(JComponent c)
取消初始化
this.list 拨打
uninstallListeners() ,
uninstallKeyboardActions() 和
uninstallDefaults() 秩序。
|
protected void |
updateLayoutState()
根据当前字体和fixedCellWidth,fixedCellHeight和prototypeCellValue的当前值重新计算cellHeight或cellHeights和cellWidth的值。
|
contains, getAccessibleChild, getAccessibleChildrenCount, getMaximumSize, getMinimumSize, update
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
protected void paintCell(Graphics g, int row, Rectangle rowBounds, ListCellRenderer cellRenderer, ListModel dataModel, ListSelectionModel selModel, int leadIndex)
public void paint(Graphics g, JComponent c)
paint
在
ComponentUI
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)
getBaseline
在
ComponentUI
c
-
JComponent
正在请求基准
width
- 获取基准的宽度
height
- 获取基准的高度
NullPointerException
- 如果
c
是
null
IllegalArgumentException
- 如果宽度或高度<0
JComponent.getBaseline(int, int)
public Component.BaselineResizeBehavior getBaselineResizeBehavior(JComponent c)
getBaselineResizeBehavior
在
ComponentUI
c
-
JComponent
以返回基准调整大小行为
NullPointerException
- 如果
c
是
null
JComponent.getBaseline(int, int)
public Dimension getPreferredSize(JComponent c)
If the visible row count is <= 0, the preferred height is dictated by the number of columns, which will be as many as can fit in the width of the JList
(width / max cell width), with at least one column. The preferred height then becomes the model size / number of columns * maximum cell height. Max cell height is either the fixed cell height, or is determined by iterating through all the cells to find the maximum height from the ListCellRenderer.
Insets
从确定list.getInsets()
。
getPreferredSize
在
ComponentUI
c
- JList组件。
JComponent.getPreferredSize()
,
LayoutManager.preferredLayoutSize(java.awt.Container)
protected void selectPreviousIndex()
protected void selectNextIndex()
protected void installKeyboardActions()
JList
,该BasicListUI
相关联。
这个方法在installUI()时调用。
protected void uninstallKeyboardActions()
installKeyboardActions
安装的键盘操作。
此方法在uninstallUI()时调用 - 子类应确保在installUI时注册的所有键盘操作在此处被删除。
protected void installListeners()
protected void uninstallListeners()
protected void installDefaults()
protected void uninstallDefaults()
null
。
如果某个属性的当前值不是UIResource,则该属性被视为被UIResource
。
public void installUI(JComponent c)
this.list
拨打
installDefaults()
,
installListeners()
和
installKeyboardActions()
秩序。
installUI
在
ComponentUI
c
- 正在安装此UI代理的组件
installDefaults()
,
installListeners()
,
installKeyboardActions()
public void uninstallUI(JComponent c)
this.list
拨打uninstallListeners()
, uninstallKeyboardActions()
和uninstallDefaults()
秩序。
将this.list设置为null。
uninstallUI
在类
ComponentUI
c
- 从中删除此UI代理的组件;
这个参数经常被忽略,但如果UI对象是无状态的并且被多个组件共享,则可能会被使用
uninstallListeners()
,
uninstallKeyboardActions()
,
uninstallDefaults()
public static ComponentUI createUI(JComponent list)
public int locationToIndex(JList list, Point location)
JList
列表中的坐标系中最接近指定位置。
要确定单元格实际是否包含指定的位置,请按照getCellBounds的规定对该单元格的边界进行getCellBounds
。
如果列表的模型为空,则此方法返回-1
。
locationToIndex
在
ListUI
list
- 列表
location
- 点的坐标
-1
,或
-1
NullPointerException
- 如果
location
为空
public Point indexToLocation(JList list, int index)
JList
中的原点。
如果索引无效,则返回null
。
indexToLocation
在类
ListUI
list
- 列表
index
- 细胞指数
null
public Rectangle getCellBounds(JList list, int index1, int index2)
如果较小的索引在列表的单元格范围之外,则此方法返回null
。 如果较小的索引有效,但较大的索引在列表的范围之外,则仅返回第一个索引的边界。 否则返回有效范围的范围。
getCellBounds
在
ListUI
类
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);
}
}
}
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);
}
}
}
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);
}
}
}
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);
}
}
}
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.