- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JList<E>
-
- 参数类型
-
E
- 此列表的元素类型
- 实现的所有接口
-
ImageObserver
,MenuContainer
,Serializable
,Accessible
,Scrollable
@JavaBean(defaultProperty="UI", description="A component which allows for the selection of one or more objects from a list.") public class JList<E> extends JComponent implements Scrollable, Accessible
显示对象列表并允许用户选择一个或多个项目的组件。 单独的模型ListModel
维护列表的内容。使用自动为您构建只读
ListModel
实例的JList
构造函数可以轻松显示数组或对象向量:// 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
集。 这些更改的特征是javax.swing.event.ListDataEvent
,它标识已修改,添加或删除的列表索引的范围。JList
的ListUI
负责通过收听模型使视觉表示与变化保持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
集。 这些变化的特征是javax.swing.event.ListSelectionEvent
,它标识了选择变化的范围。监听列表选择中更改的首选方法是将
ListSelectionListener
直接添加到JList
。 然后JList
负责听取选择模型并通知听众变化。为了使列表的可视化表示保持最新,监听选择更改的责任在于列表的
ListUI
。JList中的单元格
JList
由名为单元格渲染器的委托处理,该委托安装在列表中作为cellRenderer
属性。 渲染器提供java.awt.Component
,用作“橡皮图章”来绘制细胞。 每次需要绘制一个单元格时,列表的ListUI
向单元格渲染器询问该组件,将其移动到位,并通过其paint
方法绘制单元格的内容。 列表的ListUI
安装了一个默认的单元格渲染器,它使用JLabel
组件进行渲染。 您可以使用以下代码替换您自己的渲染器:// Display an icon and a string for each object in the list. class MyCellRenderer extends JLabel implements ListCellRenderer<Object> { static final ImageIcon longIcon = new ImageIcon("long.gif"); static final 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
不提供双击或三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开始,
java.beans
软件包中添加了对所有JavaBeansjava.beans
长期存储的支持。 请参阅XMLEncoder
。有关进一步的文档,请参见How to Use Lists , 电话:The Java Tutorial 。
- 从以下版本开始:
- 1.2
- 另请参见:
-
ListModel
,AbstractListModel
,DefaultListModel
,ListSelectionModel
,DefaultListSelectionModel
,ListCellRenderer
,DefaultListCellRenderer
, Serialized Form
-
-
嵌套类汇总
嵌套类 变量和类型 类 描述 protected class
JList.AccessibleJList
此类实现JList
类的可访问性支持。static class
JList.DropLocation
的一个子类TransferHandler.DropLocation
表示用于一个放置位置JList
。-
嵌套类/接口声明在类 javax.swing.JComponent
JComponent.AccessibleJComponent
-
嵌套类/接口声明在类 java.awt.Container
Container.AccessibleAWTContainer
-
-
字段汇总
字段 变量和类型 字段 描述 static int
HORIZONTAL_WRAP
表示“报纸样式”布局,单元格水平流动然后垂直流动。static int
VERTICAL
表示单个列中单元格的垂直布局; 默认布局。static int
VERTICAL_WRAP
表示“报纸样式”布局,单元格垂直然后水平流动。-
声明的属性在类 javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
-
声明的属性在类 java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
-
Fields declared in interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
-
-
方法摘要
所有方法 实例方法 具体的方法 弃用的方法 变量和类型 方法 描述 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
直接添加到对选择模型所做的选择更改列表中。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
加入到这个SJList
途经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()
返回此JList
的String
表示。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)
从Vector
构造只读ListModel
,并使用此模型调用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
属性设置为当前外观提供的值来重置该属性。-
声明方法的类 javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, 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, 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
-
声明方法的类 java.awt.Container
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
-
声明方法的类 java.awt.Component
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, 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, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
字段详细信息
-
VERTICAL
public static final int VERTICAL
表示单个列中单元格的垂直布局; 默认布局。- 从以下版本开始:
- 1.4
- 另请参见:
-
setLayoutOrientation(int)
, 常数字段值
-
VERTICAL_WRAP
public static final int VERTICAL_WRAP
表示“报纸样式”布局,单元格垂直然后水平流动。- 从以下版本开始:
- 1.4
- 另请参见:
-
setLayoutOrientation(int)
, 常数字段值
-
HORIZONTAL_WRAP
public static final int HORIZONTAL_WRAP
表示“报纸样式”布局,单元格水平流动然后垂直流动。- 从以下版本开始:
- 1.4
- 另请参见:
-
setLayoutOrientation(int)
, 常数字段值
-
-
构造方法详细信息
-
JList
public JList(ListModel<E> dataModel)
构造一个JList
,显示指定的non-null
模型中的元素。 所有JList
构造函数都委托给这个。此构造函数将列表注册到
ToolTipManager
,允许单元格渲染器提供工具提示。- 参数
-
dataModel
- 列表的模型 - 异常
-
IllegalArgumentException
- 如果型号是null
-
JList
public JList(E[] listData)
构造一个显示指定数组中元素的JList
。 此构造函数为给定数组创建只读模型,然后委托给带有ListModel
的构造ListModel
。尝试将
null
值传递给此方法会导致未定义的行为,并且很可能是异常。 创建的模型直接引用给定的数组。 在构造列表后尝试修改数组会导致未定义的行为。- 参数
-
listData
- 要加载到数据模型中的对象数组,non-null
-
JList
public JList(Vector<? extends E> listData)
构造一个JList
,显示指定的Vector
的元素。 此构造函数为给定的Vector
创建只读模型,然后委托给带有ListModel
的构造ListModel
。尝试将
null
值传递给此方法会导致未定义的行为,并且很可能会导致异常。 创建的模型直接引用给定的Vector
。 在构造列表后尝试修改Vector
导致未定义的行为。- 参数
-
listData
-的Vector
被加载到数据模型,non-null
-
JList
public JList()
使用空的只读模型构造JList
。
-
-
方法详细信息
-
getUI
public ListUI getUI()
返回呈现此组件的外观对象ListUI
。- 重写:
-
getUI
在类JComponent
- 结果
-
呈现此组件的
ListUI
对象
-
setUI
@BeanProperty(hidden=true, visualUpdate=true, description="The UI object that implements the Component\'s LookAndFeel.") public void setUI(ListUI ui)
设置ListUI
,即呈现此组件的外观对象。- 参数
-
ui
-ListUI
对象 - 另请参见:
-
UIDefaults.getUI(javax.swing.JComponent)
-
updateUI
public void updateUI()
通过将ListUI
属性设置为当前外观提供的值来重置该属性。 如果开发人员安装了当前的单元格渲染器(而不是外观本身),则还会通过在其上调用SwingUtilities.updateComponentTreeUI
来更新单元格渲染器及其子项。
-
getUIClassID
@BeanProperty(bound=false) public String getUIClassID()
返回"ListUI"
,该UIDefaults
用于查找该名关键javax.swing.plaf.ListUI
类定义的外观和感觉这个组件。- 重写:
-
getUIClassID
在类JComponent
- 结果
- 字符串“ListUI”
- 另请参见:
-
JComponent.getUIClassID()
,UIDefaults.getUI(javax.swing.JComponent)
-
getPrototypeCellValue
public E getPrototypeCellValue()
返回“原型”单元格值 - 用于计算单元格的固定宽度和高度的值。 如果没有这样的值,这可以是null
。- 结果
-
prototypeCellValue
属性的值 - 另请参见:
-
setPrototypeCellValue(E)
-
setPrototypeCellValue
@BeanProperty(visualUpdate=true, description="The cell prototype value, used to compute cell width and height.") 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)
-
getFixedCellWidth
public int getFixedCellWidth()
返回fixedCellWidth
属性的值。- 结果
- 固定的单元格宽度
- 另请参见:
-
setFixedCellWidth(int)
-
setFixedCellWidth
@BeanProperty(visualUpdate=true, description="Defines a fixed cell width when greater than zero.") public void setFixedCellWidth(int width)
设置一个固定值,用于列表中每个单元格的宽度。 如果width
为-1,则通过将getPreferredSize
应用于每个列表元素的单元格渲染器组件,在ListUI
中计算单元格宽度。此属性的默认值为
-1
。这是一个JavaBeans绑定属性。
- 参数
-
width
- 列表中所有单元格的宽度 - 另请参见:
-
setPrototypeCellValue(E)
,setFixedCellWidth(int)
,Container.addPropertyChangeListener(java.beans.PropertyChangeListener)
-
getFixedCellHeight
public int getFixedCellHeight()
返回fixedCellHeight
属性的值。- 结果
- 固定的细胞高度
- 另请参见:
-
setFixedCellHeight(int)
-
setFixedCellHeight
@BeanProperty(visualUpdate=true, description="Defines a fixed cell height when greater than zero.") public void setFixedCellHeight(int height)
设置一个固定值,用于列表中每个单元格的高度。 如果height
为-1,则通过将getPreferredSize
应用于每个列表元素的单元格渲染器组件,在ListUI
中计算单元格高度。此属性的默认值为
-1
。这是一个JavaBeans绑定属性。
- 参数
-
height
- 列表中所有单元格的高度 - 另请参见:
-
setPrototypeCellValue(E)
,setFixedCellWidth(int)
,Container.addPropertyChangeListener(java.beans.PropertyChangeListener)
-
getCellRenderer
public ListCellRenderer<? super E> getCellRenderer()
返回负责绘制列表项的对象。- 结果
-
cellRenderer
属性的值 - 另请参见:
-
setCellRenderer(javax.swing.ListCellRenderer<? super E>)
-
setCellRenderer
@BeanProperty(visualUpdate=true, description="The component used to draw the cells.") public void setCellRenderer(ListCellRenderer<? super E> cellRenderer)
设置用于绘制列表中每个单元格的委托。 class level documentation中详细讨论了单元格渲染器的工作。如果
prototypeCellValue
属性为non-null
,则设置单元格渲染器也会导致重新计算fixedCellWidth
和fixedCellHeight
属性。 只有一个PropertyChangeEvent
但是生成-为cellRenderer
财产。此属性的默认值由
ListUI
委托提供,即由外观实现提供。这是一个JavaBeans绑定属性。
- 参数
-
cellRenderer
- 绘制列表单元格的ListCellRenderer
- 另请参见:
-
getCellRenderer()
-
getSelectionForeground
public Color getSelectionForeground()
返回用于绘制所选项目前景的颜色。DefaultListCellRenderer
使用此颜色绘制处于选定状态的项目的前景,大多数ListUI
实现安装的渲染器也是ListUI
。- 结果
- 绘制所选项目前景的颜色
- 另请参见:
-
setSelectionForeground(java.awt.Color)
,DefaultListCellRenderer
-
setSelectionForeground
@BeanProperty(visualUpdate=true, description="The foreground color of selected cells.") public void setSelectionForeground(Color selectionForeground)
设置用于绘制所选项目前景的颜色,单元格渲染器可用于渲染文本和图形。DefaultListCellRenderer
使用此颜色绘制处于选定状态的项目的前景,大多数ListUI
实现安装的渲染器也是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
-
getSelectionBackground
public Color getSelectionBackground()
返回用于绘制所选项目背景的颜色。DefaultListCellRenderer
使用此颜色绘制处于选定状态的项目的背景,大多数ListUI
实现安装的渲染器也是ListUI
。- 结果
- 用于绘制所选项目背景的颜色
- 另请参见:
-
setSelectionBackground(java.awt.Color)
,DefaultListCellRenderer
-
setSelectionBackground
@BeanProperty(visualUpdate=true, description="The background color of selected cells.") public void setSelectionBackground(Color selectionBackground)
设置用于绘制所选项目背景的颜色,单元格渲染器可以使用填充选定的单元格。DefaultListCellRenderer
使用此颜色填充选定状态的项目的背景,大多数ListUI
实现安装的渲染器也是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
-
getVisibleRowCount
public int getVisibleRowCount()
返回visibleRowCount
属性的值。 有关如何解释此值的详细信息,请参阅setVisibleRowCount(int)
的文档。- 结果
-
visibleRowCount
属性的值。 - 另请参见:
-
setVisibleRowCount(int)
-
setVisibleRowCount
@BeanProperty(visualUpdate=true, description="The preferred number of rows to display without requiring scrolling") 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
-
getLayoutOrientation
public int getLayoutOrientation()
返回列表的布局方向属性:VERTICAL
如果布局是单个单元格列),VERTICAL_WRAP
如果布局是“报纸样式”,内容垂直然后水平流动,或HORIZONTAL_WRAP
如果布局是“报纸样式”的内容然后垂直流动。- 结果
-
layoutOrientation
属性的值 - 从以下版本开始:
- 1.4
- 另请参见:
-
setLayoutOrientation(int)
-
setLayoutOrientation
@BeanProperty(visualUpdate=true, enumerationValues={"JList.VERTICAL","JList.HORIZONTAL_WRAP","JList.VERTICAL_WRAP"}, description="Defines the way list cells are layed out.") 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
这些布局的描述如下:
Describes layouts VERTICAL,HORIZONTAL_WRAP, and VERTICAL_WRAP Value DescriptionVERTICAL
Cells are layed out vertically in a single column.HORIZONTAL_WRAP
Cells are layed out horizontally, wrapping to a new row as necessary. If thevisibleRowCount
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 ensurevisibleRowCount
rows in the list.VERTICAL_WRAP
Cells are layed out vertically, wrapping to a new column as necessary. If thevisibleRowCount
property is less than or equal to zero, wrapping is determined by the height of the list; otherwise wrapping is done atvisibleRowCount
rows.VERTICAL
。- 参数
-
layoutOrientation
-新的布局方向,其一:VERTICAL
,HORIZONTAL_WRAP
或VERTICAL_WRAP
- 异常
-
IllegalArgumentException
- 如果layoutOrientation
不是允许值之一 - 从以下版本开始:
- 1.4
- 另请参见:
-
getLayoutOrientation()
,setVisibleRowCount(int)
,getScrollableTracksViewportHeight()
,getScrollableTracksViewportWidth()
-
getFirstVisibleIndex
@BeanProperty(bound=false) public int getFirstVisibleIndex()
返回当前可见的最小列表索引。 在从左到右的componentOrientation
,第一个可见单元格最靠近列表的左上角。 在从右到左的方向上,它被发现最靠近右上角。 如果看不到任何内容或列表为空,则返回-1
。 请注意,返回的单元格可能只是部分可见。- 结果
- 第一个可见细胞的索引
- 另请参见:
-
getLastVisibleIndex()
,JComponent.getVisibleRect()
-
getLastVisibleIndex
@BeanProperty(bound=false) public int getLastVisibleIndex()
返回当前可见的最大列表索引。 如果看不到任何内容或列表为空,则返回-1
。 请注意,返回的单元格可能只是部分可见。- 结果
- 最后一个可见单元格的索引
- 另请参见:
-
getFirstVisibleIndex()
,JComponent.getVisibleRect()
-
ensureIndexIsVisible
public void ensureIndexIsVisible(int index)
在封闭的视口中滚动列表以使指定的单元格完全可见。 这将使用指定单元格的边界调用scrollRectToVisible
。 要使用此方法,JList
必须在JViewport
范围内。如果给定的索引在列表的单元格范围之外,则此方法不会产生任何结果。
- 参数
-
index
- 要显示的单元格的索引 - 另请参见:
-
JComponent.scrollRectToVisible(java.awt.Rectangle)
,JComponent.getVisibleRect()
-
setDragEnabled
@BeanProperty(bound=false, description="determines whether automatic drag handling is enabled") public void setDragEnabled(boolean b)
打开或关闭自动拖动处理。 为了启用自动拖动处理,此属性应设置为true
,列表的TransferHandler
必须为non-null
。dragEnabled
属性的默认值为false
。尊重此属性以及识别用户拖动手势的工作在于外观和实现,特别是列表的
ListUI
。 启用自动拖动处理后,只要用户在项目上按下鼠标按钮,然后将鼠标移动几个像素,大多数外观(包括子类BasicLookAndFeel
)都会开始拖放操作。 因此,将此属性设置为true
可能会对选择的行为产生微妙影响。如果使用忽略此属性的外观,您仍然可以通过调用列表
exportAsDrag
上的TransferHandler
开始拖放操作。- 参数
-
b
- 是否启用自动拖动处理 - 异常
-
HeadlessException
- 如果b
是true
和GraphicsEnvironment.isHeadless()
回报true
- 从以下版本开始:
- 1.4
- 另请参见:
-
GraphicsEnvironment.isHeadless()
,getDragEnabled()
,JComponent.setTransferHandler(javax.swing.TransferHandler)
,TransferHandler
-
getDragEnabled
public boolean getDragEnabled()
返回是否启用自动拖动处理。- 结果
-
dragEnabled
属性的值 - 从以下版本开始:
- 1.4
- 另请参见:
-
setDragEnabled(boolean)
-
setDropMode
public final void setDropMode(DropMode dropMode)
设置此组件的放置模式。 为了向后兼容,此属性的默认值为DropMode.USE_SELECTION
。 但是,建议使用其他模式之一,以改善用户体验。 例如,DropMode.ON
提供了类似于显示所选项目的行为,但这样做不会影响列表中的实际选择。JList
支持以下丢弃模式:-
DropMode.USE_SELECTION
-
DropMode.ON
-
DropMode.INSERT
-
DropMode.ON_OR_INSERT
TransferHandler
,drop mode才有意义。- 参数
-
dropMode
- 要使用的放置模式 - 异常
-
IllegalArgumentException
- 如果不支持放置模式或null
- 从以下版本开始:
- 1.6
- 另请参见:
-
getDropMode()
,getDropLocation()
,JComponent.setTransferHandler(javax.swing.TransferHandler)
,TransferHandler
-
-
getDropMode
public final DropMode getDropMode()
返回此组件的放置模式。- 结果
- 此组件的放置模式
- 从以下版本开始:
- 1.6
- 另请参见:
-
setDropMode(javax.swing.DropMode)
-
getDropLocation
@BeanProperty(bound=false) public final JList.DropLocation getDropLocation()
返回此组件在组件上的DnD操作期间应在视觉上指示为放置位置的位置,如果当前未显示任何位置,则返回null
。此方法不适用于从
TransferHandler
查询放置位置,因为放置位置仅在TransferHandler
的canImport
返回并允许显示位置后设置。当此属性更改时,组件将触发名称为“dropLocation”的属性更改事件。
默认情况下,监听此属性更改并在视觉上指示放置位置的
ListUI
在于列表的ListUI
,它可以直接绘制它和/或安装单元格渲染器来执行此操作。 希望实现自定义放置位置绘制和/或替换默认单元格渲染器的开发人员可能需要遵守此属性。- 结果
- 下降的位置
- 从以下版本开始:
- 1.6
- 另请参见:
-
setDropMode(javax.swing.DropMode)
,TransferHandler.canImport(TransferHandler.TransferSupport)
-
getNextMatch
public int getNextMatch(String prefix, int startIndex, Position.Bias bias)
返回下一个列表元素,其toString
值以给定前缀开头。- 参数
-
prefix
- 要测试匹配的字符串 -
startIndex
- 开始搜索的索引 -
bias
- 搜索方向,Position.Bias.Forward或Position.Bias.Backward。 - 结果
-
以前缀开头的下一个列表元素的索引;
否则
-1
- 异常
-
IllegalArgumentException
- 如果前缀是null
或者startIndex超出范围 - 从以下版本开始:
- 1.4
-
getToolTipText
public String getToolTipText(MouseEvent event)
返回要用于给定事件的工具提示文本。 这将覆盖JComponent
的getToolTipText
以首先检查发生事件的单元格的单元格渲染器组件,并返回其工具提示文本(如果有)。 此实现允许您在单元格级别上指定工具提示文本,方法setToolTipText
在单元格渲染器组件上使用setToolTipText
。注意:
JList
正确地以这种方式显示其渲染的工具提示,JList
必须是注册的组件ToolTipManager
。 此注册在构造函数中自动完成。 但是,如果稍后JList
未注册,则通过调用setToolTipText(null)
,将不再显示渲染器的提示。- 重写:
-
getToolTipText
在类JComponent
- 参数
-
event
- 获取工具提示文本的MouseEvent
- 结果
- 包含工具提示的字符串
- 另请参见:
-
JComponent.setToolTipText(java.lang.String)
,JComponent.getToolTipText()
-
locationToIndex
public int locationToIndex(Point location)
返回列表坐标系中最接近给定位置的单元格索引。 要确定单元格是否实际包含指定位置,请将该点与单元格的边界进行比较,如getCellBounds
。 如果模型为空,则此方法返回-1
这是一个封面方法,它委托列表
ListUI
中的ListUI
。 它返回-1
如果列表中没有ListUI
。- 参数
-
location
- 该点的坐标 - 结果
-
最接近给定位置的单元
-1
,或-1
-
indexToLocation
public Point indexToLocation(int index)
返回列表坐标系中指定项的原点。 如果索引无效,则此方法返回null
。这是一个封面方法,它委托列表
ListUI
中的ListUI
。 它返回null
如果列表中没有ListUI
。- 参数
-
index
- 单元index
引 - 结果
-
细胞的起源,或
null
-
getCellBounds
public Rectangle getCellBounds(int index0, int index1)
返回列表坐标系中的边界矩形,用于由两个索引指定的单元格范围。 这些指数可以任何顺序提供。如果较小的索引位于列表的单元格范围之外,则此方法返回
null
。 如果较小的索引有效,但较大的索引在列表的范围之外,则返回第一个索引的边界。 否则,返回有效范围的边界。这是一个封面方法,它委托列表
ListUI
中的ListUI
。 它返回null
如果列表中没有ListUI
。- 参数
-
index0
- 该范围内的第一个索引 -
index1
- 范围内的第二个索引 - 结果
-
单元格范围的边界矩形,或
null
-
getModel
public ListModel<E> getModel()
返回包含JList
组件显示的项列表的数据模型。- 结果
-
ListModel
,提供显示的项目列表 - 另请参见:
-
setModel(javax.swing.ListModel<E>)
-
setModel
@BeanProperty(visualUpdate=true, description="The object that contains the data to be drawn by this JList.") public void setModel(ListModel<E> model)
设置表示列表内容或“值”的模型,通知属性更改侦听器,然后清除列表的选择。这是一个JavaBeans绑定属性。
- 参数
-
model
- 提供要显示的项目列表的ListModel
- 异常
-
IllegalArgumentException
- 如果model
是null
- 另请参见:
-
getModel()
,clearSelection()
-
setListData
public void setListData(E[] listData)
从项目数组构造只读ListModel
,并使用此模型调用setModel
。尝试将
null
值传递给此方法会导致未定义的行为,并且很可能是异常。 创建的模型直接引用给定的数组。 尝试在调用此方法后修改数组会导致未定义的行为。- 参数
-
listData
- 包含要在列表中显示的项目的E
数组 - 另请参见:
-
setModel(javax.swing.ListModel<E>)
-
setListData
public void setListData(Vector<? extends E> listData)
从Vector
构造只读ListModel
,并使用此模型调用setModel
。尝试将
null
值传递给此方法会导致未定义的行为,并且很可能是异常。 创建的模型直接引用给定的Vector
。 尝试在调用此方法后修改Vector
导致未定义的行为。- 参数
-
listData
- 包含要在列表中显示的项目的Vector
- 另请参见:
-
setModel(javax.swing.ListModel<E>)
-
createSelectionModel
protected ListSelectionModel createSelectionModel()
返回DefaultListSelectionModel
的实例; 在构造期间调用以初始化列表的选择模型属性。- 结果
-
a
DefaultListSelecitonModel
,用于在构造期间初始化列表的选择模型属性 - 另请参见:
-
setSelectionModel(javax.swing.ListSelectionModel)
,DefaultListSelectionModel
-
getSelectionModel
public ListSelectionModel getSelectionModel()
返回当前选择模型。 选择模型维护列表的选择状态。 有关更多详细信息,请参阅类级别文档。- 结果
-
保留列表选择的
ListSelectionModel
- 另请参见:
-
setSelectionModel(javax.swing.ListSelectionModel)
,ListSelectionModel
-
fireSelectionValueChanged
protected void fireSelectionValueChanged(int firstIndex, int lastIndex, boolean isAdjusting)
通知ListSelectionListener
直接添加到对选择模型所做的选择更改列表中。JList
侦听对选择模型中的选择所做的更改,并通过调用此方法将通知直接转发给添加到列表中的侦听器。此方法使用此列表作为源和指定的参数构造
ListSelectionEvent
,并将其发送到已注册的ListSelectionListeners
。- 参数
-
firstIndex
- 范围中的第一个索引,<= lastIndex
-
lastIndex
- 该范围内的最后一个指数,>= firstIndex
-
isAdjusting
- 这是否是一系列多个事件中的一个,其中仍在进行更改 - 另请参见:
-
addListSelectionListener(javax.swing.event.ListSelectionListener)
,removeListSelectionListener(javax.swing.event.ListSelectionListener)
,ListSelectionEvent
,EventListenerList
-
addListSelectionListener
public void addListSelectionListener(ListSelectionListener listener)
向列表添加侦听器,以便在每次更改选择时收到通知; 听取选择状态变化的首选方式。JList
负责监听选择模型中的选择状态更改,并通知给定的侦听器每个更改。ListSelectionEvent
发送到侦听器■找一source
属性设置为这个列表。- 参数
-
listener
- 要添加的ListSelectionListener
- 另请参见:
-
getSelectionModel()
,getListSelectionListeners()
-
removeListSelectionListener
public void removeListSelectionListener(ListSelectionListener listener)
从列表中删除选择侦听器。- 参数
-
listener
- 要删除的ListSelectionListener
- 另请参见:
-
addListSelectionListener(javax.swing.event.ListSelectionListener)
,getSelectionModel()
-
getListSelectionListeners
@BeanProperty(bound=false) public ListSelectionListener[] getListSelectionListeners()
返回所有的数组ListSelectionListener
加入到这个SJList
途经addListSelectionListener
。- 结果
-
此列表中的所有
ListSelectionListener
,如果未添加任何侦听器,则为空数组 - 从以下版本开始:
- 1.4
- 另请参见:
-
addListSelectionListener(javax.swing.event.ListSelectionListener)
-
setSelectionModel
@BeanProperty(description="The selection model, recording which cells are selected.") public void setSelectionModel(ListSelectionModel selectionModel)
将列表的selectionModel
设置为非null
ListSelectionModel
实现。 选择模型处理进行单个选择,连续范围选择和非连续选择的任务。这是一个JavaBeans绑定属性。
- 参数
-
selectionModel
- 实现选择的ListSelectionModel
- 异常
-
IllegalArgumentException
- 如果selectionModel
是null
- 另请参见:
-
getSelectionModel()
-
setSelectionMode
@BeanProperty(bound=false, enumerationValues={"ListSelectionModel.SINGLE_SELECTION","ListSelectionModel.SINGLE_INTERVAL_SELECTION","ListSelectionModel.MULTIPLE_INTERVAL_SELECTION"}, description="The selection mode.") public void setSelectionMode(int selectionMode)
设置列表的选择模式。 这是一种覆盖方法,可直接在选择模型上设置选择模式。以下列表描述了可接受的选择模式:
-
ListSelectionModel.SINGLE_SELECTION
- 一次只能选择一个列表索引。 在此模式下,setSelectionInterval
和addSelectionInterval
是等效的,它们都用第二个参数(“lead”)表示的索引替换当前选择。 -
ListSelectionModel.SINGLE_INTERVAL_SELECTION
- 一次只能选择一个连续的间隔。 在此模式下,addSelectionInterval
行为类似于setSelectionInterval
(替换当前选择),除非给定间隔与现有选择紧邻或重叠,并且可用于增大选择。 -
ListSelectionModel.MULTIPLE_INTERVAL_SELECTION
- 在此模式下,可以选择的内容没有限制。 此模式是默认模式。
- 参数
-
selectionMode
- 选择模式 - 异常
-
IllegalArgumentException
- 如果选择模式不是允许的模式之一 - 另请参见:
-
getSelectionMode()
-
-
getSelectionMode
public int getSelectionMode()
返回列表的当前选择模式。 这是一种封面方法,它委托列表选择模型上的同名方法。- 结果
- 当前的选择模式
- 另请参见:
-
setSelectionMode(int)
-
getAnchorSelectionIndex
@BeanProperty(bound=false) public int getAnchorSelectionIndex()
返回锚选择索引。 这是一种封面方法,它委托列表选择模型上的同名方法。- 结果
- 锚选择指数
- 另请参见:
-
ListSelectionModel.getAnchorSelectionIndex()
-
getLeadSelectionIndex
@BeanProperty(bound=false, description="The lead selection index.") public int getLeadSelectionIndex()
返回潜在客户选择索引。 这是一种封面方法,它委托列表选择模型上的同名方法。- 结果
- 领先选择指数
- 另请参见:
-
ListSelectionModel.getLeadSelectionIndex()
-
getMinSelectionIndex
@BeanProperty(bound=false) public int getMinSelectionIndex()
返回最小的选定单元-1
引,如果选择为空,则返回-1
。 这是一种封面方法,它委托列表选择模型上的同名方法。- 结果
-
最小的选定单元
-1
引,或-1
- 另请参见:
-
ListSelectionModel.getMinSelectionIndex()
-
getMaxSelectionIndex
@BeanProperty(bound=false) public int getMaxSelectionIndex()
返回最大的选定单元-1
引,如果选择为空,则返回-1
。 这是一种封面方法,它委托列表选择模型上的同名方法。- 结果
- 最大的选定细胞指数
- 另请参见:
-
ListSelectionModel.getMaxSelectionIndex()
-
isSelectedIndex
public boolean isSelectedIndex(int index)
如果选择了指定的索引,则返回true
,否则false
。 这是一种封面方法,它委托列表选择模型上的同名方法。- 参数
-
index
- 要为选择状态查询的索引 - 结果
-
true
如果选择了指定的索引,否则为false
- 另请参见:
-
ListSelectionModel.isSelectedIndex(int)
,setSelectedIndex(int)
-
isSelectionEmpty
@BeanProperty(bound=false) public boolean isSelectionEmpty()
如果未选择任何内容,则返回true
,否则false
。 这是一种封面方法,它委托列表选择模型上的同名方法。- 结果
-
true
如果未选择任何内容,false
- 另请参见:
-
ListSelectionModel.isSelectionEmpty()
,clearSelection()
-
clearSelection
public void clearSelection()
清除选择; 调用此方法后,isSelectionEmpty
将返回true
。 这是一种封面方法,它委托列表选择模型上的同名方法。
-
setSelectionInterval
public void setSelectionInterval(int anchor, int lead)
选择指定的间隔。 包括anchor
和lead
指数。anchor
不必小于或等于lead
。 这是一种封面方法,它委托列表选择模型上的同名方法。有关如何处理小于
0
值的详细信息,请参阅所用选择模型类的文档。- 参数
-
anchor
- 要选择的第一个索引 -
lead
- 要选择的最后一个索引 - 另请参见:
-
ListSelectionModel.setSelectionInterval(int, int)
,DefaultListSelectionModel.setSelectionInterval(int, int)
,createSelectionModel()
,addSelectionInterval(int, int)
,removeSelectionInterval(int, int)
-
addSelectionInterval
public void addSelectionInterval(int anchor, int lead)
将选择设置为指定间隔与当前选择的并集。 包括anchor
和lead
指数。anchor
不必小于或等于lead
。 这是一种封面方法,它委托列表选择模型上的同名方法。有关如何处理小于
0
值的详细信息,请参阅所用选择模型类的文档。- 参数
-
anchor
- 要添加到选择的第一个索引 -
lead
- 要添加到选择的最后一个索引 - 另请参见:
-
ListSelectionModel.addSelectionInterval(int, int)
,DefaultListSelectionModel.addSelectionInterval(int, int)
,createSelectionModel()
,setSelectionInterval(int, int)
,removeSelectionInterval(int, int)
-
removeSelectionInterval
public void removeSelectionInterval(int index0, int index1)
将选择设置为指定间隔和当前选择的设置差异。index0
和index1
索引均已删除。index0
不必小于或等于index1
。 这是一种封面方法,它委托列表选择模型上的同名方法。有关如何处理小于
0
值的详细信息,请参阅所用选择模型类的文档。- 参数
-
index0
- 要从选择中删除的第一个索引 -
index1
- 要从选择中删除的最后一个索引 - 另请参见:
-
ListSelectionModel.removeSelectionInterval(int, int)
,DefaultListSelectionModel.removeSelectionInterval(int, int)
,createSelectionModel()
,setSelectionInterval(int, int)
,addSelectionInterval(int, int)
-
setValueIsAdjusting
public void setValueIsAdjusting(boolean b)
设置选择模型的valueIsAdjusting
属性。 当true
,即将进行的选择更改应视为单个更改的一部分。 此属性在内部使用,开发人员通常不需要调用此方法。 例如,当模型是响应于用户拖动被更新,该属性的值被设置为true
当拖动开始,并设置为false
当拖动结束。 这允许侦听器仅在更改完成时更新,而不是处理所有中间值。如果进行一系列应该被视为单个更改的一部分的更改,您可能希望直接使用它。
这是一种封面方法,它委托列表选择模型上的同名方法。 有关更多详细信息,请参阅
ListSelectionModel.setValueIsAdjusting(boolean)
的文档。
-
getValueIsAdjusting
public boolean getValueIsAdjusting()
返回选择模型的isAdjusting
属性的值。这是一种封面方法,它委托列表选择模型上的同名方法。
- 结果
-
选择模型的
isAdjusting
属性。 - 另请参见:
-
setValueIsAdjusting(boolean)
,ListSelectionModel.getValueIsAdjusting()
-
getSelectedIndices
public int[] getSelectedIndices()
返回所有选定索引的数组,按升序排列。- 结果
- 所有选定的索引,按升序排列,如果未选择任何内容,则为空数组
- 另请参见:
-
removeSelectionInterval(int, int)
,addListSelectionListener(javax.swing.event.ListSelectionListener)
-
setSelectedIndex
@BeanProperty(bound=false, description="The index of the selected cell.") public void setSelectedIndex(int index)
选择单个单元格。 如果给定索引大于或等于模型大小,则不执行任何操作。 这是一种在选择模型上使用setSelectionInterval
的便捷方法。 有关如何处理小于0
值的详细信息,请参阅所用选择模型类的文档。- 参数
-
index
- 要选择的单元格的索引 - 另请参见:
-
ListSelectionModel.setSelectionInterval(int, int)
,isSelectedIndex(int)
,addListSelectionListener(javax.swing.event.ListSelectionListener)
-
setSelectedIndices
public void setSelectedIndices(int[] indices)
将选择更改为给定数组指定的索引集。 大于或等于模型大小的索引将被忽略。 这是一种方便的方法,可以清除选择,然后在选择模型上使用addSelectionInterval
来添加索引。 有关如何处理小于0
值的详细信息,请参阅所用选择模型类的文档。- 参数
-
indices
- 要选择的单元indices
的数组,non-null
- 异常
-
NullPointerException
- 如果给定的数组是null
- 另请参见:
-
ListSelectionModel.addSelectionInterval(int, int)
,isSelectedIndex(int)
,addListSelectionListener(javax.swing.event.ListSelectionListener)
-
getSelectedValues
@Deprecated @BeanProperty(bound=false) public Object[] getSelectedValues()
Deprecated.As of JDK 1.7, replaced bygetSelectedValuesList()
返回所有选定值的数组,根据列表中的索引按升序排列。- 结果
- 选定的值,如果未选择任何值,则为空数组
- 另请参见:
-
isSelectedIndex(int)
,getModel()
,addListSelectionListener(javax.swing.event.ListSelectionListener)
-
getSelectedValuesList
@BeanProperty(bound=false) public List<E> getSelectedValuesList()
返回所有选定项的列表,根据列表中的索引按升序排列。- 结果
- 选定的项目,如果未选择任何内容,则为空列表
- 从以下版本开始:
- 1.7
- 另请参见:
-
isSelectedIndex(int)
,getModel()
,addListSelectionListener(javax.swing.event.ListSelectionListener)
-
getSelectedIndex
public int getSelectedIndex()
返回最小的选定单元格索引; 在列表中仅选择单个项目时的选择。 选择多个项目时,它只是选择的最小索引。 如果没有选择,则返回-1
。该方法是代表
getMinSelectionIndex
的封面。- 结果
- 最小的选定单元格索引
- 另请参见:
-
getMinSelectionIndex()
,addListSelectionListener(javax.swing.event.ListSelectionListener)
-
getSelectedValue
@BeanProperty(bound=false) public E getSelectedValue()
返回最小的选定单元格索引的值; 在列表中仅选择单个项目时所选的值 。 选择多个项目时,它只是最小选定索引的值。 如果没有选择,则返回null
。这是一种简便方法,只返回
getMinSelectionIndex
的模型值。
-
setSelectedValue
public void setSelectedValue(Object anObject, boolean shouldScroll)
从列表中选择指定的对象。 如果传递的对象是null
,则清除选择。- 参数
-
anObject
- 要选择的对象 -
shouldScroll
-true
如果列表应滚动以显示所选对象(如果存在); 否则false
-
getPreferredScrollableViewportSize
@BeanProperty(bound=false) public Dimension getPreferredScrollableViewportSize()
计算显示visibleRowCount
行所需的视口大小。 此方法返回的值取决于布局方向:VERTICAL
:
如果已设置fixedCellWidth
和fixedCellHeight
(显式或通过指定原型单元格值),则这是微不足道的。 宽度只是fixedCellWidth
加上列表的水平插入。 高度是fixedCellHeight
乘以visibleRowCount
,加上列表的垂直插图。如果未指定
fixedCellWidth
或fixedCellHeight
,则使用启发式。 如果模型为空,则宽度为fixedCellWidth
,如果大于0
,或者硬编码值为256
。 高度为fixedCellHeight
乘以visibleRowCount
,如果fixedCellHeight
大于0
,否则它是硬编码的值16
乘以visibleRowCount
。如果模型不为空,则宽度是首选大小的宽度,通常是最宽列表元素的宽度。 高度是单元格的高度,索引0乘以
visibleRowCount
,加上列表的垂直插入。VERTICAL_WRAP
或HORIZONTAL_WRAP
:
此方法只返回getPreferredSize
的值。 该列表的ListUI
预计将覆盖getPreferredSize
以返回适当的值。- Specified by:
-
getPreferredScrollableViewportSize
在界面Scrollable
- 结果
-
包含显示
visibleRowCount
行所需视口大小的维度 - 另请参见:
-
getPreferredScrollableViewportSize()
,setPrototypeCellValue(E)
-
getScrollableUnitIncrement
public int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction)
返回滚动以显示下一行或上一行(用于垂直滚动)或列(用于水平滚动)的距离。对于水平滚动,如果布局方向为
VERTICAL
,那么列表的字体大小被返回(或1
如果字体为null
)。- Specified by:
-
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)
-
getScrollableBlockIncrement
public int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction)
返回滚动以显示下一个或上一个块的距离。对于垂直滚动,使用以下规则:
- 如果向下滚动,则返回要滚动的距离,以便最后一个可见元素成为第一个完全可见的元素
- 如果向上滚动,则返回滚动的距离,以便第一个可见元素成为最后一个完全可见的元素
- 如果列表为空,则返回
visibleRect.height
对于水平滚动,当布局方向为
VERTICAL_WRAP
或HORIZONTAL_WRAP
:- 如果向右滚动,则返回要滚动的距离,以便最后一个可见元素成为第一个完全可见的元素
- 如果向左滚动,则返回要滚动的距离,以便第一个可见元素成为最后一个完全可见的元素
- 如果列表为空,则返回
visibleRect.width
对于水平滚动和
VERTICAL
方向,返回visibleRect.width
。请注意,
visibleRect
的值必须等于this.getVisibleRect()
。- Specified by:
-
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)
-
getScrollableTracksViewportWidth
@BeanProperty(bound=false) public boolean getScrollableTracksViewportWidth()
返回true
如果此JList
被显示在JViewport
和视口比所述列表的优选宽度,或者如果布局方向为HORIZONTAL_WRAP
和visibleRowCount <= 0
; 否则返回false
。如果是
false
,则不跟踪视口的宽度。 这允许水平滚动,如果JViewport
本身嵌入到JScrollPane
。- Specified by:
-
getScrollableTracksViewportWidth
在界面Scrollable
- 结果
- 封闭视口是否应强制列表的宽度与其自身匹配
- 另请参见:
-
Scrollable.getScrollableTracksViewportWidth()
-
getScrollableTracksViewportHeight
@BeanProperty(bound=false) public boolean getScrollableTracksViewportHeight()
返回true
如果此JList
显示在JViewport
和视口比列表的首选高度更高,或者布局方向为VERTICAL_WRAP
和visibleRowCount <= 0
; 否则返回false
。如果是
false
,则不跟踪视口的高度。 这允许垂直滚动,如果JViewport
本身嵌入到JScrollPane
。- Specified by:
-
getScrollableTracksViewportHeight
在界面Scrollable
- 结果
- 封闭视口是否应强制列表的高度与其自身匹配
- 另请参见:
-
Scrollable.getScrollableTracksViewportHeight()
-
paramString
protected String paramString()
返回此JList
的String
表示。 此方法仅用于调试目的,返回的String
的内容和格式可能因实现而异。 返回的String
可能为空,但可能不是null
。- 重写:
-
paramString
在类JComponent
- 结果
-
String
表示JList
。
-
getAccessibleContext
@BeanProperty(bound=false) public AccessibleContext getAccessibleContext()
获取AccessibleContext
与此相关JList
。 为JList
,所述AccessibleContext
需要一个的形式AccessibleJList
。如有必要,将创建新的
AccessibleJList
实例。- Specified by:
-
getAccessibleContext
在界面Accessible
- 重写:
-
getAccessibleContext
在类Component
- 结果
-
AccessibleJList
,作为AccessibleContext
的JList
-
-