- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JList<E>
-
- 参数类型
-
E
- 此列表的元素的类型
- All Implemented Interfaces:
-
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)); }
A
ListModel
可以通过构造函数或setModel
方法直接提供给一个JList
。 200新X-45旗新新200新新200新200新200新新200新200新新200新200新200新新200新200新新200新200新新200新200新200新新200新新200新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200 正确的ListModel
实现通知已经添加到它的javax.swing.event.ListDataListener
的集合,每次发生更改。 这些更改的特征是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
的实例)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
方法绘制单元格的内容。 使用JLabel
组件呈现的默认单元格渲染器由列表的ListUI
安装。 您可以使用以下代码替换您自己的渲染器:// 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
不提供双击或三键(或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
。有关进一步的文件,请参见The Java Tutorial中的How to Use Lists 。
- 从以下版本开始:
- 1.2
- 另请参见:
-
ListModel
,AbstractListModel
,DefaultListModel
,ListSelectionModel
,DefaultListSelectionModel
,ListCellRenderer
,DefaultListCellRenderer
, Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 描述 protected class
JList.AccessibleJList
该类实现JList
类的可访问性支持。static class
JList.DropLocation
的一个子类TransferHandler.DropLocation
表示用于一个放置位置JList
。-
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
-
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
-
-
Field Summary
Fields Modifier and Type Field 描述 static int
HORIZONTAL_WRAP
表示“报纸风格”布局,单元格水平方向垂直。static int
VERTICAL
表示单个列中的单元格的垂直布局; 默认布局。static int
VERTICAL_WRAP
表示“报纸风格”布局,单元格横向垂直流动。-
Fields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
-
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
-
Fields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
-
-
方法摘要
所有方法 接口方法 具体的方法 弃用的方法 Modifier and Type 方法 描述 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
加入到这个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
属性重新设置为当前外观所提供的值。-
Methods inherited from class 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, 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, 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
-
Methods inherited from class 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
-
Methods inherited from class javax.swing.JComponent
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
-
-
-
-
字段详细信息
-
VERTICAL
public static final int VERTICAL
表示单个列中的单元格的垂直布局; 默认布局。- 从以下版本开始:
- 1.4
- 另请参见:
-
setLayoutOrientation(int)
, Constant Field Values
-
VERTICAL_WRAP
public static final int VERTICAL_WRAP
表示“报纸风格”布局,单元格横向垂直流动。- 从以下版本开始:
- 1.4
- 另请参见:
-
setLayoutOrientation(int)
, Constant Field Values
-
HORIZONTAL_WRAP
public static final int HORIZONTAL_WRAP
表示“报纸风格”布局,单元格水平方向垂直。- 从以下版本开始:
- 1.4
- 另请参见:
-
setLayoutOrientation(int)
, Constant Field Values
-
-
构造方法详细信息
-
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
。尝试将
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
更新,通过调用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
接受丢弃,则丢弃模式才有意义。- 参数
-
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
在于列表的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
提供的方式getCellBounds
点与单元格的边界进行getCellBounds
。 如果模型为空,此方法返回-1
这是一种封面方法,委托给列表
ListUI
同名的方法。-1
ListUI
- 参数
-
location
- 点的坐标 - 结果
-
最接近给定位置的单元
-1
,或-1
-
indexToLocation
public Point indexToLocation(int index)
返回列表坐标系中指定项目的原点。 如果索引无效,此方法返回null
。这是一种封面方法,委托给列表
ListUI
相同名称的ListUI
。 新新null
的新新ListUI
- 参数
-
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
的实例; 在建设期间呼吁初始化列表的选择模型属性。- 结果
-
一个
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
s直接添加到对选择模型所做的选择更改的列表中。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
- 要选择的单元格的索引的数组,non-null
- 异常
-
NullPointerException
- 如果给定的数组是null
- 另请参见:
-
ListSelectionModel.addSelectionInterval(int, int)
,isSelectedIndex(int)
,addListSelectionListener(javax.swing.event.ListSelectionListener)
-
getSelectedValues
@Deprecated @BeanProperty(bound=false) public Object[] getSelectedValues()
根据列表中的索引以递增的顺序返回所有选定值的数组。- 结果
- 所选值,或空数组,如果没有选择
- 另请参见:
-
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
返回getMinSelectionIndex
的模型值。
-
setSelectedValue
public void setSelectedValue(Object anObject, boolean shouldScroll)
从列表中选择指定的对象。- 参数
-
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
。如果模型不为空,则宽度是首选大小的宽度,通常是最宽列表元素的宽度。 高度是
fixedCellHeight
乘以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
-
-