E
- 此列表的元素的类型
public class JList<E> extends JComponent implements Scrollable, Accessible
ListModel
维护列表的内容。
可以很容易地显示对象的数组或向量,使用JList
构造函数自动构建只读ListModel
实例为您提供:
// Create a JList that displays strings from an array String[] data = {"one", "two", "three", "four"}; JList<String> myList = new JList<String>(data); // Create a JList that displays the superclasses of JList.class, by // creating it with a Vector populated with this data Vector<Class<?>> superClasses = new Vector<Class<?>>(); Class<JList> rootClass = javax.swing.JList.class; for(Class<?> cls = rootClass; cls != null; cls = cls.getSuperclass()) { superClasses.addElement(cls); } JList<Class<?>> myList = new JList<Class<?>>(superClasses); // The automatically created model is stored in JList's "model" // property, which you can retrieve ListModel<Class<?>> model = myList.getModel(); for(int i = 0; i < model.getSize(); i++) { System.out.println(model.getElementAt(i)); }
甲ListModel
可以直接提供给JList
由一个构造的方式或setModel
方法。 内容不需要是静态的 - 项目的数量和项目的值可以随着时间的推移而改变。 正确的ListModel
实现通知已经添加到它的javax.swing.event.ListDataListener
s的集合,每次发生更改。 这些更改的特征在于javax.swing.event.ListDataEvent
,它标识已修改,添加或删除的列表索引的范围。 JList
的ListUI
负责与变化保持视觉呈现最新,通过监听模式。
简单,动态内容, JList
程序可以使用DefaultListModel
类来维护列表元素。 该类实现了ListModel
接口,并提供了一个类似java.util.Vector
的API。 需要更自定义ListModel
程序可能希望子类化AbstractListModel
,它为管理和通知监听器提供了基本的支持。 例如,只读实现AbstractListModel
:
// This list model has about 2^16 elements. Enjoy scrolling. ListModel<String> bigData = new AbstractListModel<String>() { public int getSize() { return Short.MAX_VALUE; } public String getElementAt(int index) { return "Index " + index; } };
一个的选择状态JList
被另一个单独的模型,的一个实例管理ListSelectionModel
。 JList
在构建中使用选择模型初始化,并且还包含查询或设置此选择模型的方法。 另外, JList
提供了便于管理选择的方便的方法。 这些方法,例如setSelectedIndex
和getSelectedValue
,是涵盖与选择模型交互的细节的覆盖方法。 默认情况下, JList
的选择模型被配置为允许每次选择项目的任意组合; 选择模式MULTIPLE_INTERVAL_SELECTION
。 选择模式可以直接在选型上更改,也可以通过JList
的封面方式进行更改。 响应用户手势更新选择模型的责任在于列表的ListUI
。
正确的ListSelectionModel
实现通知每次发生更改选择时已添加到其中的javax.swing.event.ListSelectionListener
s的集合。 这些更改的特征是javax.swing.event.ListSelectionEvent
,它标识选择更改的范围。
收听列表选择更改的首选方法是直接添加ListSelectionListener
s到JList
。 JList
然后照顾听选择模型并通知你的听众的变化。
为了保持列表的视觉表示更新,聆听选择更改的责任在于列表的ListUI
。
JList
中的单元格绘制由名为单元格渲染器的委托处理,作为cellRenderer
属性安装在列表中。 渲染器提供了一个java.awt.Component
,它像“橡皮图章”一样用于绘制单元格。 每次单元格需要绘制时,列表的ListUI
会向单元格渲染器询问组件,将其移动到位,并通过其paint
方法绘制单元格的内容。 使用JLabel
组件渲染的默认单元格渲染器由列表的ListUI
。 您可以使用以下代码替换您自己的渲染器:
// Display an icon and a string for each object in the list. class MyCellRenderer extends JLabel implements ListCellRenderer<Object> { final static ImageIcon longIcon = new ImageIcon("long.gif"); final static ImageIcon shortIcon = new ImageIcon("short.gif"); // This is the only method defined by ListCellRenderer. // We just reconfigure the JLabel each time we're called. public Component getListCellRendererComponent( JList<?> list, // the list Object value, // value to display int index, // cell index boolean isSelected, // is the cell selected boolean cellHasFocus) // does the cell have focus { String s = value.toString(); setText(s); setIcon((s.length() > 10) ? longIcon : shortIcon); if (isSelected) { setBackground(list.getSelectionBackground()); setForeground(list.getSelectionForeground()); } else { setBackground(list.getBackground()); setForeground(list.getForeground()); } setEnabled(list.isEnabled()); setFont(list.getFont()); setOpaque(true); return this; } } myList.setCellRenderer(new MyCellRenderer());
单元格渲染器的另一个工作是帮助确定列表的大小信息。 默认情况下,列表的ListUI
通过询问单元格渲染器的每个列表项的首选大小来确定单元格的大小。 这对于大型物品清单来说可能是昂贵的。 为了避免这些计算,您可以在列表中设置fixedCellWidth
和fixedCellHeight
,或者根据单个原型值自动计算这些值:
JList<String> bigDataList = new JList<String>(bigData); // We don't want the JList implementation to compute the width // or height of all of the list cells, so we give it a string // that's as big as we'll need for any cell. It uses this to // compute values for the fixedCellWidth and fixedCellHeight // properties. bigDataList.setPrototypeCellValue("Index 1234567890");
JList
不直接实现滚动。 要创建一个滚动的列表,使其成为JScrollPane
的视口视图。 例如:
JScrollPane scrollPane = new JScrollPane(myList);
// Or in two steps:
JScrollPane scrollPane = new JScrollPane();
scrollPane.getViewport().setView(myList);
JList
不提供双击或三键(或N)鼠标点击的任何特殊处理,但如果您想对这些事件采取行动,可以轻松添加MouseListener
。 使用locationToIndex
方法来确定单击哪个单元格。 例如:
MouseListener mouseListener = new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2) {
int index = list.locationToIndex(e.getPoint());
System.out.println("Double clicked on Item " + index);
}
}
};
list.addMouseListener(mouseListener);
警告: Swing不是线程安全的。 有关更多信息,请参阅Swing's Threading Policy 。
警告:此类的序列化对象与将来的Swing版本不兼容。 当前的序列化支持适用于运行相同版本的Swing的应用程序之间的短期存储或RMI。 从1.4开始,对所有JavaBeans的长期存储的支持已经添加到java.beans
包中。 请参阅XMLEncoder
。
Modifier and Type | Class and Description |
---|---|
protected class |
JList.AccessibleJList
这个类实现了可访问性支持
JList 类。
|
static class |
JList.DropLocation
的一个子类
TransferHandler.DropLocation 表示用于一个放置位置
JList 。
|
JComponent.AccessibleJComponent
Container.AccessibleAWTContainer
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
Modifier and Type | Field and Description |
---|---|
static int |
HORIZONTAL_WRAP
表示“报纸风格”布局,单元格水平方向垂直。
|
static int |
VERTICAL
表示单个列中的单元格的垂直布局;
默认布局。
|
static int |
VERTICAL_WRAP
表示“报纸风格”布局,单元格横向垂直流动。
|
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
Constructor and Description |
---|
JList()
构造一个空的只读模型的
JList 。
|
JList(E[] listData)
构造一个
JList ,显示指定数组中的元素。
|
JList(ListModel<E> dataModel)
构造一个
JList ,其显示从指定的,元件
non-null ,模型。
|
JList(Vector<? extends E> listData)
构造一个
JList ,显示在指定的元素
Vector 。
|
Modifier and Type | Method and Description |
---|---|
void |
addListSelectionListener(ListSelectionListener listener)
将一个监听器添加到列表中,每次发生更改时都会被通知;
倾听选择状态变化的首选方式。
|
void |
addSelectionInterval(int anchor, int lead)
将选择设置为指定间隔与当前选择的并集。
|
void |
clearSelection()
清除选择;
调用此方法后, isSelectionEmpty 将返回true 。
|
protected ListSelectionModel |
createSelectionModel()
返回一个 DefaultListSelectionModel 的实例;
在建设期间呼吁初始化列表的选择模型属性。
|
void |
ensureIndexIsVisible(int index)
在封闭的视口中滚动列表,使指定的单元格完全可见。
|
protected void |
fireSelectionValueChanged(int firstIndex, int lastIndex, boolean isAdjusting)
通知
ListSelectionListener s直接添加到选择模型所做的选择更改列表中。
|
AccessibleContext |
getAccessibleContext()
获取
AccessibleContext 与此相关
JList 。
|
int |
getAnchorSelectionIndex()
返回锚选择索引。
|
Rectangle |
getCellBounds(int index0, int index1)
返回列表坐标系中由两个索引指定的单元格范围的边界矩形。
|
ListCellRenderer<? super E> |
getCellRenderer()
返回负责绘画列表项的对象。
|
boolean |
getDragEnabled()
返回是否启用自动拖动处理。
|
JList.DropLocation |
getDropLocation()
返回该组件应在视觉上作为放置位置的DnD操作期间组件上方指示,或位置
null 如果没有位置是当前被显示。
|
DropMode |
getDropMode()
返回此组件的放置模式。
|
int |
getFirstVisibleIndex()
返回当前可见的最小列表索引。
|
int |
getFixedCellHeight()
返回
fixedCellHeight 属性的值。
|
int |
getFixedCellWidth()
返回
fixedCellWidth 属性的值。
|
int |
getLastVisibleIndex()
返回当前可见的最大列表索引。
|
int |
getLayoutOrientation()
返回列表的布局方向属性:
VERTICAL 如果布局是单列单元格,
VERTICAL_WRAP 如果布局是“报纸样式”,内容垂直然后水平流动,或
HORIZONTAL_WRAP 如果布局是“报纸样式”与内容水平流动然后垂直。
|
int |
getLeadSelectionIndex()
返回引导选择索引。
|
ListSelectionListener[] |
getListSelectionListeners()
返回所有的数组
ListSelectionListener 加入到这个S
JList 途经
addListSelectionListener 。
|
int |
getMaxSelectionIndex()
返回最大的所选单元
-1 引,如果选择为空,则返回-1。
|
int |
getMinSelectionIndex()
返回最小选择的单元
-1 引,如果选择为空,则返回-1。
|
ListModel<E> |
getModel()
返回保存由
JList 组件显示的项目列表的数据模型。
|
int |
getNextMatch(String prefix, int startIndex, Position.Bias bias)
返回下一个列表元素,其中
toString 值以给定的前缀开始。
|
Dimension |
getPreferredScrollableViewportSize()
计算显示
visibleRowCount 行所需的视口大小。
|
E |
getPrototypeCellValue()
返回“原型”单元格值 - 用于计算单元格的固定宽度和高度的值。
|
int |
getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction)
返回要滚动以显示下一个或上一个块的距离。
|
boolean |
getScrollableTracksViewportHeight()
返回 true 如果JList 显示在JViewport 和视口比列表的首选高度更高,或者布局方向为VERTICAL_WRAP 和visibleRowCount <= 0 ;
否则返回false 。
|
boolean |
getScrollableTracksViewportWidth()
返回 true 如果此JList 被显示在JViewport 和视口比所述列表的优选宽度,或者如果布局方向为HORIZONTAL_WRAP 和visibleRowCount <= 0 ;
否则返回false 。
|
int |
getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction)
返回滚动的距离以显示下一行或上一行(垂直滚动)或列(用于水平滚动)。
|
int |
getSelectedIndex()
返回最小的选定单元格索引;
在列表中仅选择单个项目时的选择。
|
int[] |
getSelectedIndices()
以递增的顺序返回所有选定索引的数组。
|
E |
getSelectedValue()
返回最小选定单元索引的值;
在列表中仅选择单个项目时的选定值 。
|
Object[] |
getSelectedValues()
已弃用
截至JDK 1.7,由
getSelectedValuesList() 替代
|
List<E> |
getSelectedValuesList()
根据列表中的索引,按照增加的顺序返回所有选定项目的列表。
|
Color |
getSelectionBackground()
返回用于绘制所选项目背景的颜色。
|
Color |
getSelectionForeground()
返回用于绘制所选项目前景的颜色。
|
int |
getSelectionMode()
返回列表的当前选择模式。
|
ListSelectionModel |
getSelectionModel()
返回当前的选择模型。
|
String |
getToolTipText(MouseEvent event)
返回用于给定事件的工具提示文本。
|
ListUI |
getUI()
返回
ListUI ,呈现此组件的外观和感觉对象。
|
String |
getUIClassID()
返回
"ListUI" ,该
UIDefaults 用于查找该名关键
javax.swing.plaf.ListUI 类定义的外观和感觉这个组件。
|
boolean |
getValueIsAdjusting()
返回选择模型的
isAdjusting 属性的值。
|
int |
getVisibleRowCount()
返回
visibleRowCount 属性的值。
|
Point |
indexToLocation(int index)
返回列表坐标系中指定项目的原点。
|
boolean |
isSelectedIndex(int index)
如果选择了指定的索引,则返回
true ,否则为
false 。
|
boolean |
isSelectionEmpty()
如果没有选择,返回
true ,否则
false 。
|
int |
locationToIndex(Point location)
返回最接近列表坐标系中给定位置的单元格索引。
|
protected String |
paramString()
返回
String 如此表示
JList 。
|
void |
removeListSelectionListener(ListSelectionListener listener)
从列表中删除选择侦听器。
|
void |
removeSelectionInterval(int index0, int index1)
将选择设置为指定间隔和当前选择的设置差。
|
void |
setCellRenderer(ListCellRenderer<? super E> cellRenderer)
设置用于绘制列表中每个单元格的委托。
|
void |
setDragEnabled(boolean b)
打开或关闭自动拖动处理。
|
void |
setDropMode(DropMode dropMode)
设置此组件的下拉模式。
|
void |
setFixedCellHeight(int height)
设置要用于列表中每个单元格的高度的固定值。
|
void |
setFixedCellWidth(int width)
设置要用于列表中每个单元格宽度的固定值。
|
void |
setLayoutOrientation(int layoutOrientation)
定义列表单元格的布局方式。
|
void |
setListData(E[] listData)
构造一个只读
ListModel 从项目的数组,并调用
setModel 这种模式。
|
void |
setListData(Vector<? extends E> listData)
构造一个只读
ListModel 从
Vector 并调用
setModel 这种模式。
|
void |
setModel(ListModel<E> model)
设置表示列表的内容或“值”的模型,通知属性更改侦听器,然后清除列表的选择。
|
void |
setPrototypeCellValue(E prototypeCellValue)
设置
prototypeCellValue 属性,然后(如果新值为
non-null ),通过从单元格渲染器请求单元格渲染器组件给定值(和索引0),并使用该组件的首选大小来计算
fixedCellWidth 和
fixedCellHeight 属性。
|
void |
setSelectedIndex(int index)
选择单个单元格。
|
void |
setSelectedIndices(int[] indices)
将选择更改为给定数组指定的索引集。
|
void |
setSelectedValue(Object anObject, boolean shouldScroll)
从列表中选择指定的对象。
|
void |
setSelectionBackground(Color selectionBackground)
设置用于绘制所选项目背景的颜色,哪些单元格渲染器可以使用填充所选单元格。
|
void |
setSelectionForeground(Color selectionForeground)
设置用于绘制所选项目的前景的颜色,哪些单元格渲染器可用于渲染文本和图形。
|
void |
setSelectionInterval(int anchor, int lead)
选择指定的间隔。
|
void |
setSelectionMode(int selectionMode)
设置列表的选择模式。
|
void |
setSelectionModel(ListSelectionModel selectionModel)
将该列表的
selectionModel 设置为非
null
ListSelectionModel 实现。
|
void |
setUI(ListUI ui)
设置
ListUI ,呈现此组件的外观和感觉对象。
|
void |
setValueIsAdjusting(boolean b)
设置选择模型的
valueIsAdjusting 属性。
|
void |
setVisibleRowCount(int visibleRowCount)
设置 visibleRowCount 属性,具有不同的含义,具体取决于布局方向:对于VERTICAL 布局方向,这将设置要显示的首选行数,而不需要滚动;
对于其他取向,它影响细胞的包裹。
|
void |
updateUI()
将
ListUI 属性重新设置为当前外观所提供的值。
|
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
public static final int VERTICAL
setLayoutOrientation(int)
,
Constant Field Values
public static final int VERTICAL_WRAP
setLayoutOrientation(int)
,
Constant Field Values
public static final int HORIZONTAL_WRAP
setLayoutOrientation(int)
,
Constant Field Values
public JList(ListModel<E> dataModel)
JList
,其显示从指定的,元件non-null
,模型。
所有JList
函数都委托给这个。
此构造与注册名单ToolTipManager
,允许本小区渲染器提供工具提示。
dataModel
- 列表的模型
IllegalArgumentException
- 如果型号是
null
public JList(E[] listData)
JList
,显示指定数组中的元素。
此构造函数为给定的数组创建一个只读模型,然后委托给构造函数,该构造函数采用ListModel
。
尝试将null
值传递给此方法会导致未定义的行为,并且很有可能出现异常。 创建的模型直接引用给定的数组。 构造列表后尝试修改数组会导致未定义的行为。
listData
- 要加载到数据模型的对象数组,
non-null
public JList(Vector<? extends E> listData)
JList
,显示在指定的元素Vector
。
此构造会为给定只读模式Vector
,然后委托给带有构造ListModel
。
尝试将null
值传递给此方法会导致未定义的行为,并且最有可能发生异常。 创建的模型直接引用给定的Vector
。 在构建列表后尝试修改Vector
会导致未定义的行为。
listData
-的
Vector
被加载到数据模型,
non-null
public JList()
JList
。
public ListUI getUI()
ListUI
,呈现此组件的外观和感觉对象。
ListUI
对象
public void setUI(ListUI ui)
ListUI
,呈现此组件的外观和感觉对象。
ui
-
ListUI
对象
UIDefaults.getUI(javax.swing.JComponent)
public void updateUI()
ListUI
属性重新设置为当前外观所提供的值。
如果当前的单元格渲染器是由开发人员安装的(而不是外观和感觉本身),这也会导致单元格渲染器及其子代码更新,方法是调用SwingUtilities.updateComponentTreeUI
。
public String getUIClassID()
"ListUI"
,该
UIDefaults
用于查找该名关键
javax.swing.plaf.ListUI
类定义的外观和感觉这个组件。
getUIClassID
在
JComponent
JComponent.getUIClassID()
,
UIDefaults.getUI(javax.swing.JComponent)
public E getPrototypeCellValue()
null
如果没有这样的值。
prototypeCellValue
属性
setPrototypeCellValue(E)
public void setPrototypeCellValue(E prototypeCellValue)
prototypeCellValue
属性,然后(如果新值为non-null
),通过从单元格渲染器请求单元格渲染器组件给定值(和索引0),并使用该组件的首选大小来计算fixedCellWidth
和fixedCellHeight
属性。
当列表太长以至于不允许ListUI
计算每个单元格的宽度/高度时,此方法很有用,并且有一个已知占据与其他单元格相同的空间的单个单元格值,即所谓的原型。
虽然所有三种的prototypeCellValue
, fixedCellHeight
和fixedCellWidth
性质可通过该方法被修改, PropertyChangeEvent
通知仅发送的时prototypeCellValue
属性的变化。
要查看设置此属性的示例,请参阅上面的class description 。
此属性的默认值为null
。
这是一个JavaBeans绑定属性。
prototypeCellValue
- 基于
fixedCellWidth
和
fixedCellHeight
getPrototypeCellValue()
,
setFixedCellWidth(int)
,
setFixedCellHeight(int)
,
Container.addPropertyChangeListener(java.beans.PropertyChangeListener)
public int getFixedCellWidth()
fixedCellWidth
属性的值。
setFixedCellWidth(int)
public void setFixedCellWidth(int width)
width
是-1,单元宽度计算在ListUI
通过施加getPreferredSize
至细胞渲染器组件为每个列表元素。
此属性的默认值为-1
。
这是一个JavaBeans绑定属性。
width
- 要用于列表中所有单元格的宽度
setPrototypeCellValue(E)
,
setFixedCellWidth(int)
,
Container.addPropertyChangeListener(java.beans.PropertyChangeListener)
public int getFixedCellHeight()
fixedCellHeight
属性的值。
setFixedCellHeight(int)
public void setFixedCellHeight(int height)
height
是-1,细胞高度被计算在ListUI
通过施加getPreferredSize
至细胞渲染器组件为每个列表元素。
此属性的默认值为-1
。
这是一个JavaBeans绑定属性。
height
- 用于列表中所有单元格的高度
setPrototypeCellValue(E)
,
setFixedCellWidth(int)
,
Container.addPropertyChangeListener(java.beans.PropertyChangeListener)
public ListCellRenderer<? super E> getCellRenderer()
cellRenderer
属性
setCellRenderer(javax.swing.ListCellRenderer<? super E>)
public void setCellRenderer(ListCellRenderer<? super E> cellRenderer)
如果prototypeCellValue
属性为non-null
,则设置单元格渲染器也会导致重新fixedCellWidth
和fixedCellHeight
属性。 只有一个PropertyChangeEvent
生成 - 对于cellRenderer
属性。
该属性的默认值由ListUI
代理提供,即通过外观实现。
这是一个JavaBeans绑定属性。
cellRenderer
- 绘制列表单元格的
ListCellRenderer
getCellRenderer()
public Color getSelectionForeground()
DefaultListCellRenderer
使用此颜色来绘制所选状态的项目的前景,大多数ListUI
实现中安装的渲染器也是如此。
setSelectionForeground(java.awt.Color)
, DefaultListCellRenderer
public void setSelectionForeground(Color selectionForeground)
DefaultListCellRenderer
使用此颜色绘制所选状态的项目的前景,大多数ListUI
实现中安装的渲染器也是如此。
该属性的默认值由外观实现定义。
这是一个JavaBeans绑定属性。
selectionForeground
-
Color
在前台使用选定的列表项
getSelectionForeground()
, setSelectionBackground(java.awt.Color)
, JComponent.setForeground(java.awt.Color)
, JComponent.setBackground(java.awt.Color)
, JComponent.setFont(java.awt.Font)
, DefaultListCellRenderer
public Color getSelectionBackground()
DefaultListCellRenderer
使用此颜色绘制所选状态的项目的背景,大多数ListUI
实现中安装的渲染器也是如此。
setSelectionBackground(java.awt.Color)
, DefaultListCellRenderer
public void setSelectionBackground(Color selectionBackground)
DefaultListCellRenderer
使用这种颜色来填充所选状态的项目的背景,大多数ListUI
实现中安装的渲染器也是如此。
该属性的默认值由外观实现定义。
这是一个JavaBeans绑定属性。
selectionBackground
-
Color
用于所选单元格的背景
getSelectionBackground()
, setSelectionForeground(java.awt.Color)
, JComponent.setForeground(java.awt.Color)
, JComponent.setBackground(java.awt.Color)
, JComponent.setFont(java.awt.Font)
, DefaultListCellRenderer
public int getVisibleRowCount()
visibleRowCount
属性的值。
有关如何解释此值的详细信息,请参阅setVisibleRowCount(int)
的文档 。
visibleRowCount
属性。
setVisibleRowCount(int)
public void setVisibleRowCount(int visibleRowCount)
visibleRowCount
属性,具有不同的含义:对于VERTICAL
布局方向,这将设置要显示的首选行数,而不需要滚动;
对于其他取向,它影响细胞的包裹。
在VERTICAL
方向:
设置此属性会影响getPreferredScrollableViewportSize()
方法的返回值,该方法用于计算封闭视口的首选大小。 有关更多详细信息,请参阅该方法的文档。
在HORIZONTAL_WRAP
和VERTICAL_WRAP
方向:
这会影响细胞的包装。 有关详细信息,请参阅setLayoutOrientation(int)
的文档 。
此属性的默认值为8
。
使用负值调用此方法会导致属性设置为0
。
这是一个JavaBeans绑定属性。
visibleRowCount
- 一个整数,指定要显示的首选行数,而不需要滚动
getVisibleRowCount()
, getPreferredScrollableViewportSize()
, setLayoutOrientation(int)
, JComponent.getVisibleRect()
, JViewport
public int getLayoutOrientation()
VERTICAL
如果布局是单列单元格,
VERTICAL_WRAP
如果布局是“报纸样式”,内容垂直然后水平流动,或
HORIZONTAL_WRAP
如果布局是“报纸样式”与内容水平流动然后垂直。
layoutOrientation
属性
setLayoutOrientation(int)
public void setLayoutOrientation(int layoutOrientation)
JList
。
细胞可以通过以下方式之一进行布置:
VERTICAL: 0
1
2
3
4
HORIZONTAL_WRAP: 0 1 2
3 4
VERTICAL_WRAP: 0 3
1 4
2
这些布局的描述如下:
Value
描述
VERTICAL
Cells are layed out vertically in a single column. HORIZONTAL_WRAP
Cells are layed out horizontally, wrapping to a new row as necessary. If the visibleRowCount
property is less than or equal to zero, wrapping is determined by the width of the list; otherwise wrapping is done in such a way as to ensure visibleRowCount
rows in the list. VERTICAL_WRAP
Cells are layed out vertically, wrapping to a new column as necessary. If the visibleRowCount
property is less than or equal to zero, wrapping is determined by the height of the list; otherwise wrapping is done at visibleRowCount
rows.
此属性的默认值为VERTICAL
。
layoutOrientation
-新的布局方向,其一:
VERTICAL
,
HORIZONTAL_WRAP
或
VERTICAL_WRAP
IllegalArgumentException
- 如果
layoutOrientation
不是允许的值之一
getLayoutOrientation()
,
setVisibleRowCount(int)
,
getScrollableTracksViewportHeight()
,
getScrollableTracksViewportWidth()
public int getFirstVisibleIndex()
componentOrientation
,第一个可见单元格被发现最接近列表的左上角。
从右到左的方向,它被发现最靠近右上角。
如果没有可见或列表为空,则返回-1
。
请注意,返回的单元格只能部分可见。
getLastVisibleIndex()
,
JComponent.getVisibleRect()
public int getLastVisibleIndex()
-1
。
请注意,返回的单元格只能部分可见。
getFirstVisibleIndex()
,
JComponent.getVisibleRect()
public void ensureIndexIsVisible(int index)
scrollRectToVisible
与指定单元格的边界。
为方便上班, JList
必须在JViewport
。
如果给定的索引在列表的单元格范围之外,则此方法不会产生任何结果。
index
- 单元格的索引使其可见
JComponent.scrollRectToVisible(java.awt.Rectangle)
,
JComponent.getVisibleRect()
public void setDragEnabled(boolean b)
true
,并且列表的TransferHandler
需要为non-null
。
dragEnabled
属性的默认值为false
。
尊重这个财产的工作,并认识到一个用户拖动手势,在于外观和感觉的实现,特别是列表的ListUI
。 当启用自动拖动处理,最外观和感觉(包括那些继承BasicLookAndFeel
),开始一拖每当用户按下在项上的鼠标按钮,然后将鼠标移动几个像素拖放操作。 因此,将此属性设置为true
可以对选择行为有一个微妙的影响。
如果一个外观使用的是忽略这个属性,你仍然可以开始拖拽,并通过调用拖放操作exportAsDrag
上的列表中的TransferHandler
。
b
- 是否启用自动拖动处理
HeadlessException
- 如果
b
是
true
和
GraphicsEnvironment.isHeadless()
返回
true
GraphicsEnvironment.isHeadless()
, getDragEnabled()
, JComponent.setTransferHandler(javax.swing.TransferHandler)
, TransferHandler
public boolean getDragEnabled()
dragEnabled
属性
setDragEnabled(boolean)
public final void setDropMode(DropMode dropMode)
DropMode.USE_SELECTION
。
但是,为了改善用户体验,建议使用其他模式之一。
例如, DropMode.ON
提供了显示所选项目的类似行为,但这样做并不影响列表中的实际选择。
JList
支持以下放置模式:
DropMode.USE_SELECTION
DropMode.ON
DropMode.INSERT
DropMode.ON_OR_INSERT
TransferHandler
接受丢弃,则丢弃模式才有意义。
dropMode
- 使用的下拉模式
IllegalArgumentException
- 如果不支持拖放模式或
null
getDropMode()
, getDropLocation()
, JComponent.setTransferHandler(javax.swing.TransferHandler)
, TransferHandler
public final DropMode getDropMode()
setDropMode(javax.swing.DropMode)
public final JList.DropLocation getDropLocation()
null
如果没有位置是当前被显示。
此方法不适用于从TransferHandler
查询放置位置,因为放置位置仅在TransferHandler
的canImport
已返回并已允许显示位置之后设置。
当此属性更改时,组件将触发名为“dropLocation”的属性更改事件。
默认情况下,监视对此属性的更改的责任和视觉上指示放置位置的ListUI
在于列表的ListUI
,它可以直接绘制和/或安装单元格渲染器。 希望实现自定义放置位置绘画和/或替换默认单元格渲染器的开发人员可能需要遵守此属性。
setDropMode(javax.swing.DropMode)
,
TransferHandler.canImport(TransferHandler.TransferSupport)
public int getNextMatch(String prefix, int startIndex, Position.Bias bias)
toString
值以给定的前缀开头。
prefix
- 要测试匹配的字符串
startIndex
- 开始搜索的索引
bias
- 搜索方向,PositionBias.Forward或Position.Bias.Backward。
-1
IllegalArgumentException
- 如果前缀为
null
或startIndex超出范围
public String getToolTipText(MouseEvent event)
JComponent
的getToolTipText
以首先检查事件发生的单元格的单元格渲染器组件,返回其工具提示文本(如果有)。
此实现允许您通过在单元格渲染器组件上使用setToolTipText
来指定单元格级别的工具提示文本。
注意:对于JList
,以这种方式正确显示其渲染器的工具提示, JList
必须是具有ToolTipManager的注册ToolTipManager
。 此注册在构造函数中自动完成。 但是,如果稍后点JList
未注册,通过调用setToolTipText(null)
,来自渲染器的提示将不再显示。
getToolTipText
在
JComponent
event
- 获取工具提示文本的
MouseEvent
JComponent.setToolTipText(java.lang.String)
,
JComponent.getToolTipText()
public int locationToIndex(Point location)
getCellBounds
提供的方式getCellBounds
点与单元格的边界进行getCellBounds
。
如果模型为空,此方法返回-1
这是一种封面方法,委托给列表ListUI
。 它返回-1
如果列表中没有ListUI
。
location
- 点的坐标
-1
,或
-1
public Point indexToLocation(int index)
null
。
这是一种覆盖方法,委托给列表中的相同名称的方法ListUI
。 它返回null
如果列表中没有ListUI
。
index
- 细胞指数
null
public Rectangle getCellBounds(int index0, int index1)
如果较小的索引在列表的单元格范围之外,则此方法返回null
。 如果较小的索引有效,但较大的索引在列表的范围之外,则仅返回第一个索引的边界。 否则返回有效范围的范围。
这是一种覆盖方法,委托给列表中的ListUI
的方法ListUI
。 它返回null
如果列表中没有ListUI
。
index0
- 范围内的第一个索引
index1
- 范围内的第二个指数
null
public ListModel<E> getModel()
JList
组件显示的项目列表的数据模型。
ListModel
,提供显示的项列表
setModel(javax.swing.ListModel<E>)
public void setModel(ListModel<E> model)
这是一个JavaBeans绑定属性。
model
- 提供要显示的项目列表的
ListModel
IllegalArgumentException
- 如果
model
是
null
getModel()
,
clearSelection()
public void setListData(E[] listData)
ListModel
从项目的数组,并调用setModel
这种模式。
尝试将null
值传递给此方法会导致未定义的行为,并且很有可能发生异常。 创建的模型直接引用给定的数组。 调用此方法后尝试修改数组会导致未定义的行为。
listData
- 包含要在列表中显示的项目的数组
E
setModel(javax.swing.ListModel<E>)
public void setListData(Vector<? extends E> listData)
ListModel
从Vector
并调用setModel
这种模式。
尝试将null
值传递给此方法会导致未定义的行为,并且最有可能发生异常。 创建的模型直接引用给定的Vector
。 调用此方法后尝试修改Vector
会导致未定义的行为。
listData
- 一个
Vector
要在列表中显示的项目的
Vector
setModel(javax.swing.ListModel<E>)
protected ListSelectionModel createSelectionModel()
DefaultListSelectionModel
的实例;
在建设期间呼吁初始化列表的选择模型属性。
DefaultListSelecitonModel
,用于在施工期间初始化列表的选择模型属性
setSelectionModel(javax.swing.ListSelectionModel)
, DefaultListSelectionModel
public ListSelectionModel getSelectionModel()
ListSelectionModel
维护列表的选择
setSelectionModel(javax.swing.ListSelectionModel)
, ListSelectionModel
protected void fireSelectionValueChanged(int firstIndex, int lastIndex, boolean isAdjusting)
ListSelectionListener
s直接添加到对选择模型所做的选择更改的列表中。
JList
侦听在选择模型中对选择所做的更改,并通过调用此方法将通知转发给添加到列表中的监听器。
此方法构造了一个ListSelectionEvent
,该列表作为源和指定的参数,并将其发送到已注册的ListSelectionListeners
。
firstIndex
- 范围内的第一个指数,
<= lastIndex
lastIndex
- 范围内的最后一个指数,
>= firstIndex
isAdjusting
- 这是否是一系列多个事件,其中仍在进行更改
addListSelectionListener(javax.swing.event.ListSelectionListener)
, removeListSelectionListener(javax.swing.event.ListSelectionListener)
, ListSelectionEvent
, EventListenerList
public void addListSelectionListener(ListSelectionListener listener)
JList
负责监听选择模型中的选择状态更改,并向给定的侦听器通知每个更改。
ListSelectionEvent
发送给监听器有一个source
属性设置为此列表。
listener
-
ListSelectionListener
添加
getSelectionModel()
,
getListSelectionListeners()
public void removeListSelectionListener(ListSelectionListener listener)
listener
- 要删除的
ListSelectionListener
addListSelectionListener(javax.swing.event.ListSelectionListener)
,
getSelectionModel()
public ListSelectionListener[] getListSelectionListeners()
ListSelectionListener
加入到这个S
JList
途经
addListSelectionListener
。
ListSelectionListener
,或者如果没有添加侦听器,则为空数组
addListSelectionListener(javax.swing.event.ListSelectionListener)
public void setSelectionModel(ListSelectionModel selectionModel)
selectionModel
设置为非null
ListSelectionModel
实现。
选择模型处理单个选择,连续范围的选择以及不连续选择的任务。
这是一个JavaBeans绑定属性。
selectionModel
-在
ListSelectionModel
实现的选择
IllegalArgumentException
- 如果
selectionModel
是
null
getSelectionModel()
public void setSelectionMode(int selectionMode)
以下列表描述了接受的选择模式:
ListSelectionModel.SINGLE_SELECTION
- 一次只能选择一个列表索引。 在这种模式下, setSelectionInterval
和addSelectionInterval
是等价的,都用当前选择代替第二个参数(“lead”)表示的索引。 ListSelectionModel.SINGLE_INTERVAL_SELECTION
- 一次只能选择一个连续的间隔。 在此模式下, addSelectionInterval
行为类似于setSelectionInterval
(替换当前选择),除非给定的间隔与现有选择紧密相邻或重叠,并可用于增加选择。 ListSelectionModel.MULTIPLE_INTERVAL_SELECTION
- 在这种模式下,对什么可以选择没有限制。 此模式是默认模式。 selectionMode
- 选择模式
IllegalArgumentException
- 如果选择模式不是允许的模式之一
getSelectionMode()
public int getSelectionMode()
setSelectionMode(int)
public int getAnchorSelectionIndex()
ListSelectionModel.getAnchorSelectionIndex()
public int getLeadSelectionIndex()
ListSelectionModel.getLeadSelectionIndex()
public int getMinSelectionIndex()
-1
引,如果选择为空,则返回-1。
这是一种覆盖方法,委托给列表选择模型上相同名称的方法。
-1
ListSelectionModel.getMinSelectionIndex()
public int getMaxSelectionIndex()
-1
引,如果选择为空,则返回-1。
这是一种覆盖方法,委托给列表选择模型上相同名称的方法。
ListSelectionModel.getMaxSelectionIndex()
public boolean isSelectedIndex(int index)
true
,否则为false
。
这是一种覆盖方法,委托给列表选择模型上相同名称的方法。
index
- 要查询选择状态的索引
true
如果指定的索引被选中,否则为
false
ListSelectionModel.isSelectedIndex(int)
,
setSelectedIndex(int)
public boolean isSelectionEmpty()
true
,否则false
。
这是一种覆盖方法,委托给列表选择模型上相同名称的方法。
true
如果没有选择,否则
false
ListSelectionModel.isSelectionEmpty()
,
clearSelection()
public void clearSelection()
isSelectionEmpty
将返回true
。
这是一种覆盖方法,委托给列表选择模型上相同名称的方法。
public void setSelectionInterval(int anchor, int lead)
anchor
和lead
指数。
anchor
不一定要小于或等于lead
。
这是一种覆盖方法,委托给列表选择模型上相同名称的方法。
有关如何处理小于0
值的详细信息,请参阅所选模型类的0
。
anchor
- 第一个要选择的索引
lead
- 最后选择的索引
ListSelectionModel.setSelectionInterval(int, int)
,
DefaultListSelectionModel.setSelectionInterval(int, int)
,
createSelectionModel()
,
addSelectionInterval(int, int)
,
removeSelectionInterval(int, int)
public void addSelectionInterval(int anchor, int lead)
anchor
和lead
指数。
anchor
不一定要小于或等于lead
。
这是一种覆盖方法,委托给列表选择模型上相同名称的方法。
有关如何处理小于0
值的详细信息,请参阅所选模型类的0
。
anchor
- 添加到选择的第一个索引
lead
- 添加到选择的最后一个索引
ListSelectionModel.addSelectionInterval(int, int)
,
DefaultListSelectionModel.addSelectionInterval(int, int)
,
createSelectionModel()
,
setSelectionInterval(int, int)
,
removeSelectionInterval(int, int)
public void removeSelectionInterval(int index0, int index1)
index0
和index1
指数都被删除。
index0
不得少于或等于index1
。
这是一种覆盖方法,委托给列表选择模型上相同名称的方法。
有关如何处理小于0
值的详细信息,请参阅所选模型类的0
。
index0
- 从选择中删除的第一个索引
index1
- 从选择中删除的最后一个索引
ListSelectionModel.removeSelectionInterval(int, int)
,
DefaultListSelectionModel.removeSelectionInterval(int, int)
,
createSelectionModel()
,
setSelectionInterval(int, int)
,
addSelectionInterval(int, int)
public void setValueIsAdjusting(boolean b)
valueIsAdjusting
属性。
当true
,即将到来的选择变化应该被认为是单一变化的一部分。
此属性在内部使用,开发人员通常不需要调用此方法。
例如,当模型正在更新以响应用户拖动时,当拖动被启动时,该属性的值被设置为true
,并且在拖动完成时设置为false
。
这允许监听器仅在更改已经完成时进行更新,而不是处理所有中间值。
如果进行一系列更改,那么您可能需要直接使用它,这些更改应被视为单个更改的一部分。
这是一种覆盖方法,委托给列表选择模型上相同名称的方法。 有关详细信息,请参阅ListSelectionModel.setValueIsAdjusting(boolean)
的文档 。
public boolean getValueIsAdjusting()
isAdjusting
属性的值。
这是一种覆盖方法,委托给列表选择模型上相同名称的方法。
isAdjusting
属性。
setValueIsAdjusting(boolean)
,
ListSelectionModel.getValueIsAdjusting()
public int[] getSelectedIndices()
removeSelectionInterval(int, int)
,
addListSelectionListener(javax.swing.event.ListSelectionListener)
public void setSelectedIndex(int index)
setSelectionInterval
的方便方法。
有关如何处理小于0
值的详细信息,请参阅所选模型类的0
。
index
- 要选择的单元格的索引
ListSelectionModel.setSelectionInterval(int, int)
,
isSelectedIndex(int)
,
addListSelectionListener(javax.swing.event.ListSelectionListener)
public void setSelectedIndices(int[] indices)
addSelectionInterval
添加索引。
有关如何处理小于0
值的详细信息,请参阅所选模型类的0
。
indices
- 要选择的单元格的索引的数组,
non-null
NullPointerException
- 如果给定的数组是
null
ListSelectionModel.addSelectionInterval(int, int)
,
isSelectedIndex(int)
,
addListSelectionListener(javax.swing.event.ListSelectionListener)
@Deprecated public Object[] getSelectedValues()
getSelectedValuesList()
取代
isSelectedIndex(int)
,
getModel()
,
addListSelectionListener(javax.swing.event.ListSelectionListener)
public List<E> getSelectedValuesList()
isSelectedIndex(int)
,
getModel()
,
addListSelectionListener(javax.swing.event.ListSelectionListener)
public int getSelectedIndex()
-1
如果没有选择。
这种方法是一个委托给getMinSelectionIndex
。
getMinSelectionIndex()
,
addListSelectionListener(javax.swing.event.ListSelectionListener)
public E getSelectedValue()
null
如果没有选择。
这是一个方便的方法,只需返回getMinSelectionIndex
的模型值。
public void setSelectedValue(Object anObject, boolean shouldScroll)
anObject
- 要选择的对象
shouldScroll
- true
如果列表滚动显示所选对象,如果存在;
否则false
public Dimension getPreferredScrollableViewportSize()
visibleRowCount
行所需的视口大小。
此方法返回的值取决于布局方向:
VERTICAL
:
如果已经设置了fixedCellWidth
和fixedCellHeight
(显式地或通过指定原型单元格值),这是微不足道的。 宽度只是fixedCellWidth
加上列表的水平插图。 高度是fixedCellHeight
乘以visibleRowCount
,加上列表的垂直插图。
如果没有fixedCellWidth
或fixedCellHeight
,则使用启发式。 如果模型为空,则宽度为fixedCellWidth
,如果大于0
,或硬编码值为256
。 高度是fixedCellHeight
乘以visibleRowCount
,如果fixedCellHeight
大于0
,否则是硬编码值16
乘以visibleRowCount
。
如果模型不为空,则宽度是首选大小的宽度,通常是最宽列表元素的宽度。 高度是fixedCellHeight
乘以visibleRowCount
,加上列表的垂直插图。
VERTICAL_WRAP
或HORIZONTAL_WRAP
:
此方法只返回值为getPreferredSize
。 该列表的ListUI
预计将覆盖getPreferredSize
以返回适当的值。
getPreferredScrollableViewportSize
在接口
Scrollable
visibleRowCount
行所需视口大小的
visibleRowCount
getPreferredScrollableViewportSize()
,
setPrototypeCellValue(E)
public int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction)
对于水平滚动,如果布局方向为VERTICAL
,则列表的字体大小被返回(或1
如果字体为null
)。
getScrollableUnitIncrement
中的
Scrollable
visibleRect
- 在视口内可见的视图区域
orientation
-
SwingConstants.HORIZONTAL
或
SwingConstants.VERTICAL
direction
- 向上/向下滚动小于或等于零,向下/向前大于零
IllegalArgumentException
- 如果
visibleRect
是
null
,或
orientation
不是
SwingConstants.VERTICAL
或
SwingConstants.HORIZONTAL
getScrollableBlockIncrement(java.awt.Rectangle, int, int)
,
Scrollable.getScrollableUnitIncrement(java.awt.Rectangle, int, int)
public int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction)
对于垂直滚动,使用以下规则:
visibleRect.height
对于水平滚动,当布局方向为VERTICAL_WRAP
或HORIZONTAL_WRAP
:
visibleRect.width
对于水平滚动和VERTICAL
方向,返回visibleRect.width
。
请注意, visibleRect
的值必须等于this.getVisibleRect()
。
getScrollableBlockIncrement
在接口
Scrollable
visibleRect
- 在视口内可见的视图区域
orientation
-
SwingConstants.HORIZONTAL
或
SwingConstants.VERTICAL
direction
- 向上/向后滚动小于或等于零,大于零用于向下/向前
IllegalArgumentException
- 如果
visibleRect
是
null
,或
orientation
不是
SwingConstants.VERTICAL
或
SwingConstants.HORIZONTAL
getScrollableUnitIncrement(java.awt.Rectangle, int, int)
,
Scrollable.getScrollableBlockIncrement(java.awt.Rectangle, int, int)
public boolean getScrollableTracksViewportWidth()
true
如果此JList
被显示在JViewport
和视口比所述列表的优选宽度,或者如果布局方向为HORIZONTAL_WRAP
和visibleRowCount <= 0
;
否则返回false
。
如果false
,那么不要跟踪视口的宽度。 如果JViewport
本身嵌入在一个JScrollPane
则允许水平JScrollPane
。
getScrollableTracksViewportWidth
在接口
Scrollable
Scrollable.getScrollableTracksViewportWidth()
public boolean getScrollableTracksViewportHeight()
true
如果JList
显示在JViewport
和视口比列表的首选高度更高,或者布局方向为VERTICAL_WRAP
和visibleRowCount <= 0
;
否则返回false
。
如果false
,那么不要跟踪视口的高度。 如果JViewport
本身嵌入在一个JScrollPane
则允许垂直JScrollPane
。
getScrollableTracksViewportHeight
在接口
Scrollable
Scrollable.getScrollableTracksViewportHeight()
protected String paramString()
String
如此表示JList
。
该方法仅用于调试目的,并且返回的String
的内容和格式可能因实现而异。
返回的String
可能为空,但可能不是null
。
paramString
在
JComponent
String
表示这个
JList
。
public AccessibleContext getAccessibleContext()
AccessibleContext
与此相关JList
。
为JList
,所述AccessibleContext
需要一个的形式AccessibleJList
。
如有必要,将创建一个新的AccessibleJList
实例。
getAccessibleContext
在界面
Accessible
getAccessibleContext
在
Component
AccessibleJList
,作为这个
AccessibleContext
的
JList