JavaTM 2 Platform
Standard Ed. 6

javax.swing
類別 JList

java.lang.Object
  繼承者 java.awt.Component
      繼承者 java.awt.Container
          繼承者 javax.swing.JComponent
              繼承者 javax.swing.JList
所有已實作的介面:
ImageObserver, MenuContainer, Serializable, Accessible, Scrollable

public class JList
extends JComponent
implements Scrollable, Accessible

顯示物件列表並且允許使用者選擇一個或多個項的元件。單獨的模型 ListModel 維護列表的內容。

使用能自動建構只讀 ListModel 實例的 JList 建構子,可以方便地顯示物件陣列或物件 Vector:

 // Create a JList that displays strings from an array

 String[] data = {"one", "two", "three", "four"};
 JList myList = new JList(data);

 // Create a JList that displays the superclasses of JList.class, by
 // creating it with a Vector populated with this data

 Vector superClasses = new Vector();
 Class rootClass = javax.swing.JList.class;
 for(Class cls = rootClass; cls != null; cls = cls.getSuperclass()) {
     superClasses.addElement(cls);
 }
 JList myList = new JList(superClasses);
 
 // The automatically created model is stored in JList's "model"
 // property, which you can retrieve

 ListModel model = myList.getModel();
 for(int i = 0; i < model.getSize(); i++) {
     System.out.println(model.getElementAt(i));
 }
 

可通過建構子或 setModel 方法向 JList 直接提供 ListModel。內容不需要是靜態的,即項數和項值可以隨時間而更改。正確的 ListModel 實作在每次發生更改時通知已添加到其中的 javax.swing.event.ListDataListener 集合。這些更改的特性由標識已修改、已添加或已移除的列表索引範圍的 javax.swing.event.ListDataEvent 來描述。通過偵聽該模型,JListListUI 負責保持可視化表示形式與更改一致。

簡單的、動態內容的 JList 應用程序可以使用 DefaultListModel 類別維護列表元素。此類別實作 ListModel 介面,它還提供類似於 java.util.Vector 的 API。而需要自定義 ListModel 實作的應用程序可能希望子類別化 AbstractListModel,它提供對管理和通知偵聽器的基本支持。例如,AbstractListModel 的一個只讀實作:

 // This list model has about 2^16 elements.  Enjoy scrolling.

 ListModel bigData = new AbstractListModel() {
     public int getSize() { return Short.MAX_VALUE; }
     public Object getElementAt(int index) { return "Index " + index; }
 };
 

JList 的選擇狀態由另一個獨立模型(ListSelectionModel 的一個實例)進行管理。JList 在建構時使用選擇模型初始化,它還包含要查詢或設置此選擇模型的方法。此外,JList 提供了便捷的方法,可以很容易地管理選擇。這些方法(如 setSelectedIndexgetSelectedValue)是維護與選擇模型交互細節的覆寫方法。預設情況下,JList 的選擇模型配置為允許一次選擇項的任何組合;選擇網要為 MULTIPLE_INTERVAL_SELECTION。選擇網要可以在選擇模型上進行直接更改,或者通過 JList 的覆寫方法更改。更新選擇模型以回應使用者動作的責任取決於列表的 ListUI

正確的 ListSelectionModel 實作在每次選擇發生更改時通知向其添加的 javax.swing.event.ListSelectionListener 集合。這些更改的特徵由標識選擇更改範圍的 javax.swing.event.ListSelectionEvent 來描述。

偵聽列表選擇中更改的首選方法是向 JList 中直接添加 ListSelectionListener。然後,JList 負責偵聽選擇模型並向偵聽器通知更改。

偵聽選擇更改以便使列表可視化表示形式保持最新的責任取決於列表的 ListUI

繪製 JList 中的單元由稱為單元渲染器(以 cellRenderer 屬性的形式安裝在列表上)的委託進行處理。渲染器提供一個其用法類似 "rubber stamp" 的 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 {
     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 通過請求單元渲染器提供每個列表項的首選大小來確定單元的大小。對於大的項列表,這可能開銷很大。為了避免這些計算,可以在列表上設置 fixedCellWidthfixedCellHeight,或者根據單個原型值自動計算這些值:

 JList bigDataList = new JList(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(Remote Method Invocation,遠端方法調用)。從 1.4 版本開始,已在 java.beans 套件中添加了支持所有 JavaBeansTM 長期存儲的功能。請參見 XMLEncoder

有關更多文檔,請參閱 The Java Tutorial 中的 How to Use Lists。另請參見 The Swing Connection 中的文章 Advanced JList Programming。  

另請參見:
ListModel, AbstractListModel, DefaultListModel, ListSelectionModel, DefaultListSelectionModel, ListCellRenderer, DefaultListCellRenderer

巢狀類別摘要
protected  class JList.AccessibleJList
          此類別實作 JList 類別的可存取性支持。
static class JList.DropLocation
          TransferHandler.DropLocation 的一個子類別,表示 JList 的放置位置 (drop location)。
 
從類別 javax.swing.JComponent 繼承的巢狀類別/介面
JComponent.AccessibleJComponent
 
從類別 java.awt.Container 繼承的巢狀類別/介面
Container.AccessibleAWTContainer
 
從類別 java.awt.Component 繼承的巢狀類別/介面
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
欄位摘要
static int HORIZONTAL_WRAP
          指示“報紙樣式”佈局,單元按先水平後垂直排列。
static int VERTICAL
          指示單個列中單元的垂直佈局;預設佈局。
static int VERTICAL_WRAP
          指示“報紙樣式”佈局,單元按先垂直後水平排列。
 
從類別 javax.swing.JComponent 繼承的欄位
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
從類別 java.awt.Component 繼承的欄位
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
從介面 java.awt.image.ImageObserver 繼承的欄位
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
建構子摘要
JList()
          建構一個具有空的、只讀模型的 JList
JList(ListModel dataModel)
          根據指定的非 null 模型建構一個顯示元素的 JList
JList(Object[] listData)
          建構一個 JList,使其顯示指定陣列中的元素。
JList(Vector<?> listData)
          建構一個 JList,使其顯示指定 Vector 中的元素。
 
方法摘要
 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()
          獲取與此 JList 關聯的 AccessibleContext
 int getAnchorSelectionIndex()
          返回定位選擇索引。
 Rectangle getCellBounds(int index0, int index1)
          返回列表的坐標系統中兩個索引所指定單元範圍內的邊界矩形。
 ListCellRenderer 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()
          返回通過 addListSelectionListener 添加到此 JList 中的所有 ListSelectionListener 所組成的陣列。
 int getMaxSelectionIndex()
          返回選擇的最大單元索引;如果選擇為空,則返回 -1
 int getMinSelectionIndex()
          返回選擇的最小單元索引;如果選擇為空,則返回 -1
 ListModel getModel()
          返回保存由 JList 元件顯示的項列表的資料模型。
 int getNextMatch(String prefix, int startIndex, Position.Bias bias)
          返回其 toString 值以給定前綴開頭的下一個列表元素。
 Dimension getPreferredScrollableViewportSize()
          計算顯示 visibleRowCount 行所需的視口的大小。
 Object getPrototypeCellValue()
          返回「原型的」單元值,即用於計算單元的固定寬度和高度的值。
 int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction)
          返回為顯露上一個或下一個塊而滾動的距離。
 boolean getScrollableTracksViewportHeight()
          如果此 JListJViewport 中顯示並且視口的高度大於列表的首選高度,或者佈局方向為 VERTICAL_WRAPvisibleRowCount <= 0,則返回 true;否則返回 false
 boolean getScrollableTracksViewportWidth()
          如果此 JListJViewport 中顯示並且視口的寬度大於列表的首選寬度,或者佈局方向為 HORIZONTAL_WRAPvisibleRowCount <= 0,則返回 true;否則返回 false
 int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction)
          返回為顯露上一個或下一個行(垂直滾動)或列(水平滾動)而滾動的距離。
 int getSelectedIndex()
          返回最小的選擇單元索引;只選擇了列表中單個項時,返回該選擇
 int[] getSelectedIndices()
          返回所選的全部索引的陣列(按升序排列)。
 Object getSelectedValue()
          返回最小的選擇單元索引的值;只選擇了列表中單個項時,返回所選值
 Object[] getSelectedValues()
          返回所有選擇值的陣列,根據其列表中的索引順序按升序排序。
 Color getSelectionBackground()
          返回用於繪製選定項的背景的顏色。
 Color getSelectionForeground()
          返回用於繪製選定項的前景的顏色。
 int getSelectionMode()
          返回列表的當前選擇網要。
 ListSelectionModel getSelectionModel()
          返回當前選擇模型。
 String getToolTipText(MouseEvent event)
          返回用於給定事件的工具提示文本。
 ListUI getUI()
          返回呈現此元件的外觀物件 ListUI
 String getUIClassID()
          返回 "ListUI",它是用於尋找定義此元件外觀的 javax.swing.plaf.ListUI 類別名稱的 UIDefaults 鍵。
 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()
          返回此 JListString 表示形式。
 void removeListSelectionListener(ListSelectionListener listener)
          從列表中移除一個選擇偵聽器。
 void removeSelectionInterval(int index0, int index1)
          將選擇設置為指定間隔和當前選擇的差集。
 void setCellRenderer(ListCellRenderer cellRenderer)
          設置用於繪製列表中每個單元的委託。
 void setDragEnabled(boolean b)
          打開或關閉自動拖動處理。
 void setDropMode(DropMode dropMode)
          設置此元件的放置網要。
 void setFixedCellHeight(int height)
          設置一個固定值,將用於列表中每個單元的高度。
 void setFixedCellWidth(int width)
          設置一個固定值,將用於列表中每個單元的寬度。
 void setLayoutOrientation(int layoutOrientation)
          定義佈置列表單元的方式。
 void setListData(Object[] listData)
          根據一個物件陣列建構只讀 ListModel,然後對此模型調用 setModel
 void setListData(Vector<?> listData)
          根據一個 Vector 建構只讀 ListModel,然後對此模型調用 setModel
 void setModel(ListModel model)
          設置表示列表內容或列表「值」的模型,通知屬性更改偵聽器,然後清除列表選擇。
 void setPrototypeCellValue(Object prototypeCellValue)
          設置 prototypeCellValue 屬性,然後(如果新值為非 null)計算 fixedCellWidthfixedCellHeight 屬性:請求單元渲染器元件提供單元渲染器的給定值(及索引 0),並使用該元件的首選大小。
 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 設置為非 nullListSelectionModel 實作。
 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, 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, 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, transferFocusBackward, 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, 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, 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, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

欄位詳細資訊

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 dataModel)
根據指定的非 null 模型建構一個顯示元素的 JList。所有 JList 建構子都委託給此方法。

此建構子向 ToolTipManager 註冊列表,允許工具提示由單元渲染器提供。

參數:
dataModel - 該列表的模型
拋出:
IllegalArgumentException - 如果模型為 null

JList

public JList(Object[] listData)
建構一個 JList,使其顯示指定陣列中的元素。此建構子為給定陣列創建一個只讀模型,然後委託給帶有 ListModel 的建構子。

如果試圖將一個 null 值傳遞給此方法,則會導致不確定的行為,最有可能導致異常。創建的模型直接參考給定的陣列。如果試圖在建構列表之後修改該陣列,則會導致不確定的行為。

參數:
listData - 要載入到資料模型中的 Object 的陣列(為非 null

JList

public JList(Vector<?> listData)
建構一個 JList,使其顯示指定 Vector 中的元素。此建構子為給定 Vector 創建一個只讀模型,然後委託給帶有 ListModel 的建構子。

如果試圖將一個 null 值傳遞給此方法,則會導致不確定的行為,最有可能導致異常。創建的模型直接參考給定的 Vector。如果試圖在建構列表之後修改該 Vector,則會導致不確定的行為。

參數:
listData - 要載入到資料模型中的 Vector(為非 null

JList

public JList()
建構一個具有空的、只讀模型的 JList

方法詳細資訊

getUI

public ListUI getUI()
返回呈現此元件的外觀物件 ListUI

返回:
呈現此元件的 ListUI 物件

setUI

public void setUI(ListUI ui)
設置呈現此元件的外觀物件 ListUI

參數:
ui - ListUI 物件
另請參見:
UIDefaults.getUI(javax.swing.JComponent)

updateUI

public void updateUI()
重置 ListUI 屬性,將其設置為當前外觀所提供的值。如果當前單元渲染器由開發人員(而不是外觀本身)安裝,則這還會導致單元渲染器及其子單元渲染器被更新(通過在其上調用 SwingUtilities.updateComponentTreeUI)。

覆寫:
類別 JComponent 中的 updateUI
另請參見:
UIManager.getUI(javax.swing.JComponent), SwingUtilities.updateComponentTreeUI(java.awt.Component)

getUIClassID

public String getUIClassID()
返回 "ListUI",它是用於尋找定義此元件外觀的 javax.swing.plaf.ListUI 類別名稱的 UIDefaults 鍵。

覆寫:
類別 JComponent 中的 getUIClassID
返回:
字元串 "ListUI"
另請參見:
JComponent.getUIClassID(), UIDefaults.getUI(javax.swing.JComponent)

getPrototypeCellValue

public Object getPrototypeCellValue()
返回「原型的」單元值,即用於計算單元的固定寬度和高度的值。如果沒有這樣的值,則可以返回 null

返回:
prototypeCellValue 屬性的值
另請參見:
setPrototypeCellValue(java.lang.Object)

setPrototypeCellValue

public void setPrototypeCellValue(Object prototypeCellValue)
設置 prototypeCellValue 屬性,然後(如果新值為非 null)計算 fixedCellWidthfixedCellHeight 屬性:請求單元渲染器元件提供單元渲染器的給定值(及索引 0),並使用該元件的首選大小。

當由於列表過長而不允許 ListUI 計算每個單元的寬度/高度,並且已知某個單元值(所謂的原型)所佔用的空間與任何其他單元一樣多時,此方法很有用。

儘管 prototypeCellValuefixedCellHeightfixedCellWidth 三個屬性都可以由此方法進行修改時,但只有 prototypeCellValue 屬性更改時才發送 PropertyChangeEvent 通知。

要查看設置此屬性的範例,請參見上述類別描述

此屬性的預設值為 null

這是一個 JavaBeans 綁定屬性。

參數:
prototypeCellValue - 作為 fixedCellWidthfixedCellHeight 的基礎的值
另請參見:
getPrototypeCellValue(), setFixedCellWidth(int), setFixedCellHeight(int), Container.addPropertyChangeListener(java.beans.PropertyChangeListener)

getFixedCellWidth

public int getFixedCellWidth()
返回 fixedCellWidth 屬性的值。

返回:
固定單元寬度
另請參見:
setFixedCellWidth(int)

setFixedCellWidth

public void setFixedCellWidth(int width)
設置一個固定值,將用於列表中每個單元的寬度。如果 width 為 -1,則可以通過將 getPreferredSize 應用到每個列表元素的單元渲染器元件來計算 ListUI 的單元寬度。

此屬性的預設值為 -1

這是一個 JavaBeans 綁定屬性。

參數:
width - 將用於該列表中所有單元的寬度
另請參見:
setPrototypeCellValue(java.lang.Object), setFixedCellWidth(int), Container.addPropertyChangeListener(java.beans.PropertyChangeListener)

getFixedCellHeight

public int getFixedCellHeight()
返回 fixedCellHeight 屬性的值。

返回:
固定單元高度
另請參見:
setFixedCellHeight(int)

setFixedCellHeight

public void setFixedCellHeight(int height)
設置一個固定值,將用於列表中每個單元的高度。如果 height 為 -1,則可以通過將 getPreferredSize 應用到每個列表元素的單元渲染器元件來計算 ListUI 的單元高度。

此屬性的預設值為 -1

這是一個 JavaBeans 綁定屬性。

參數:
height - 將用於該列表中所有單元的高度
另請參見:
setPrototypeCellValue(java.lang.Object), setFixedCellWidth(int), Container.addPropertyChangeListener(java.beans.PropertyChangeListener)

getCellRenderer

public ListCellRenderer getCellRenderer()
返回負責繪製列表項的物件。

返回:
cellRenderer 屬性的值
另請參見:
setCellRenderer(javax.swing.ListCellRenderer)

setCellRenderer

public void setCellRenderer(ListCellRenderer cellRenderer)
設置用於繪製列表中每個單元的委託。類別級別文檔中更加詳細地討論了單元渲染器的工作。

如果 prototypeCellValue 屬性為非 null,則設置單元渲染器還導致重新計算 fixedCellWidthfixedCellHeight 屬性。但是只對 cellRenderer 屬性產生一個 PropertyChangeEvent

此屬性的預設值由 ListUI 委託(即外觀實作)提供。

這是一個 JavaBeans 綁定屬性。

參數:
cellRenderer - 繪製列表單元的 ListCellRenderer
另請參見:
getCellRenderer()

getSelectionForeground

public Color getSelectionForeground()
返回用於繪製選定項的前景的顏色。DefaultListCellRenderer 使用此顏色來繪製選定狀態中的項的前景,就像大多數 ListUI 實作安裝的渲染器所做的一樣。

返回:
用於繪製選定項的前景的顏色
另請參見:
setSelectionForeground(java.awt.Color), DefaultListCellRenderer

setSelectionForeground

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

getSelectionBackground

public Color getSelectionBackground()
返回用於繪製選定項的背景的顏色。DefaultListCellRenderer 使用此顏色來繪製選定狀態中的項的背景,就像大多數 ListUI 實作安裝的渲染器所做的一樣。

返回:
用於繪製選定項的背景的顏色
另請參見:
setSelectionBackground(java.awt.Color), DefaultListCellRenderer

setSelectionBackground

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

getVisibleRowCount

public int getVisibleRowCount()
返回 visibleRowCount 屬性的值。有關如何解釋此值的詳細資訊,請參閱 setVisibleRowCount(int) 的文檔。

返回:
visibleRowCount 屬性的值。
另請參見:
setVisibleRowCount(int)

setVisibleRowCount

public void setVisibleRowCount(int visibleRowCount)
設置 visibleRowCount 屬性,對於不同的佈局方向,此方法有不同的含義:對於 VERTICAL 佈局方向,此方法設置要顯示的首選行數(不要求滾動);對於其他方向,它影響單元的套件裝。

VERTICAL 方向上:
設置此屬性將影響 getPreferredScrollableViewportSize() 方法(它用於計算封閉視口的首選大小)的返回值。有關更多資訊,請參閱該方法的文檔。

HORIZONTAL_WRAPVERTICAL_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

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
 

這些佈局的描述遵循如下內容:

描述

VERTICAL 在單個列中垂直佈置單元。
HORIZONTAL_WRAP 水平佈置單元,根據需要將單元包裹到新行中。如果 visibleRowCount 屬性小於等於 0,則包裹由該列表的寬度確定;否則,以確保列表中 visibleRowCount 行的方式進行包裹。
VERTICAL_WRAP 垂直佈置單元,根據需要將單元包裹到新列中。如果 visibleRowCount 屬性小於等於 0,則包裹由該列表的寬度確定;否則,在 visibleRowCount 行進行包裹。

此屬性的預設值為 VERTICAL

參數:
layoutOrientation - 新的佈局方向,VERTICALHORIZONTAL_WRAPVERTICAL_WRAP 之一
拋出:
IllegalArgumentException - 如果 layoutOrientation 不是所允許的值之一
從以下版本開始:
1.4
另請參見:
getLayoutOrientation(), setVisibleRowCount(int), getScrollableTracksViewportHeight(), getScrollableTracksViewportWidth()

getFirstVisibleIndex

public int getFirstVisibleIndex()
返回當前可見的最小的列表索引。在從左到右的 componentOrientation 中,第一個可見單元最接近列表的左上角。在從右到左方向上,它最接近右上角。如果任何單元都不可見或者列表為空,則返回 -1。注意,返回的單元可能只有部分可見。

返回:
第一個可見單元的索引
另請參見:
getLastVisibleIndex(), JComponent.getVisibleRect()

getLastVisibleIndex

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

public void setDragEnabled(boolean b)
打開或關閉自動拖動處理。要啟用自動拖動處理,此屬性應該設置為 true,列表的 TransferHandler 需要為非 nulldragEnabled 屬性的預設值為 false

遵守此屬性的作業以及識別使用者拖動動作取決於外觀實作,尤其是列表的 ListUI。啟用自動拖動處理時,只要使用者在項上按下鼠標按鍵,然後將鼠標移動幾個像素,大多數外觀(包括子類別化 BasicLookAndFeel 的外觀)就開始拖放操作了。因此,將此屬性設置為 true 可以對選擇的行為方式產生微妙的影響。

如果使用忽略此屬性的外觀,則仍然可以通過在列表的 TransferHandler 上調用 exportAsDrag 開始一個拖動操作。

參數:
b - 是否啟用自動拖動處理
拋出:
HeadlessException - 如果 btrue 並且 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 支持下列放置網要:

只有此元件具有接受放置的 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

public final JList.DropLocation getDropLocation()
返回在該元件上執行 DnD 操作期間此元件應該視覺上指示為放置位置的位置;如果當前沒有任何顯示的位置,則返回 null

此方法不用於查詢 TransferHandler 的放置位置,因為只有在 TransferHandlercanImport 已返回並允許顯示放置位置之後才設置了放置位置。

此屬性更改時,帶有 "dropLocation" 名稱的屬性更改事件由該元件觸發。

預設情況下,負責偵聽對此屬性的更改以及視覺上指示放置位置的是列表的 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。
返回:
以 prefix 開頭的下一個列表元素的索引;否則返回 -1
拋出:
IllegalArgumentException - 如果 prefix 為 null 或者 startIndex 超出範圍
從以下版本開始:
1.4

getToolTipText

public String getToolTipText(MouseEvent event)
返回用於給定事件的工具提示文本。此方法覆寫 JComponentgetToolTipText,首先檢查其上發生事件的單元的單元渲染器元件,並返回其工具提示文本(如果有)。此實作允許使用單元渲染器元件上的 setToolTipText 在單元層上指定工具提示文本。

註:要讓 JList 以此方式正確地顯示其渲染器的工具提示,JList 必須是已向 ToolTipManager 註冊的元件。此註冊可以在建構子中自動完成。但是,如果之後通過調用 setToolTipText(null) 註銷了 JList,則渲染器的提示將不再顯示。

覆寫:
類別 JComponent 中的 getToolTipText
參數:
event - 用於獲取工具提示文本的 MouseEvent
另請參見:
JComponent.setToolTipText(java.lang.String), JComponent.getToolTipText()

locationToIndex

public int locationToIndex(Point location)
返回最接近列表的坐標系統中給定位置的單元索引。要確定單元是否實際包含指定的位置,需要將該點與單元的邊界進行比較,邊界由 getCellBounds 提供。如果模型為空,則此方法返回 -1

此方法是委託給列表的 ListUI 中同名方法的覆寫方法。如果列表沒有 ListUI,則它返回 -1

參數:
location - 點的坐標
返回:
接近給定位置的單元索引或 -1

indexToLocation

public Point indexToLocation(int index)
返回列表的坐標系統中指定項的原點。如果索引無效,則此方法返回 null

此方法是委託給列表的 ListUI 中同名方法的覆寫方法。如果列表沒有 ListUI,則它返回 null

參數:
index - 單元索引
返回:
單元的原點或 null

getCellBounds

public Rectangle getCellBounds(int index0,
                               int index1)
返回列表的坐標系統中兩個索引所指定單元範圍內的邊界矩形。索引可以按任意順序提供。

如果較小索引超出單元的列表範圍,則此方法返回 null。如果較小索引有效,但較大索引超出列表範圍,則只返回第一個索引的邊界。否則,返回有效範圍的邊界。

此方法是委託給列表的 ListUI 中同名方法的覆寫方法。如果列表沒有 ListUI,則它返回 null

參數:
index0 - 範圍中的第一個索引
index1 - 範圍中的第二個索引
返回:
單元範圍的邊界矩形或 null

getModel

public ListModel getModel()
返回保存由 JList 元件顯示的項列表的資料模型。

返回:
提供顯示的項列表的 ListModel
另請參見:
setModel(javax.swing.ListModel)

setModel

public void setModel(ListModel model)
設置表示列表內容或列表「值」的模型,通知屬性更改偵聽器,然後清除列表選擇。

這是一個 JavaBeans 綁定屬性。

參數:
model - 提供要顯示的項列表的 ListModel
拋出:
IllegalArgumentException - 如果 modelnull
另請參見:
getModel(), clearSelection()

setListData

public void setListData(Object[] listData)
根據一個物件陣列建構只讀 ListModel,然後對此模型調用 setModel

試圖將 null 值傳遞給此方法將導致不確定的行為,很有可能是異常。創建的模型直接參考給定陣列。試圖在調用此方法之後修改該陣列將導致不確定的行為。

參數:
listData - 套件含要在列表中顯示的項的 Object 陣列
另請參見:
setModel(javax.swing.ListModel)

setListData

public void setListData(Vector<?> listData)
根據一個 Vector 建構只讀 ListModel,然後對此模型調用 setModel

試圖將 null 值傳遞給此方法將導致不確定的行為,很有可能是異常。創建的模型直接參考給定 Vector。試圖在調用此方法之後修改該 Vector 將導致不確定的行為。

參數:
listData - 套件含要在列表中顯示的項的 Vector
另請參見:
setModel(javax.swing.ListModel)

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 對列表模型做出了選擇更改。JList 偵聽選擇模型中對選擇所做的更改,並通過調用此方法將通知轉發到直接添加到列表的偵聽器。

此方法以此列表作為源,使用指定的參數建構 ListSelectionEvent,並將其發送到已註冊的 ListSelectionListener

參數:
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
另請參見:
getSelectionModel(), getListSelectionListeners()

getListSelectionListeners

public ListSelectionListener[] getListSelectionListeners()
返回通過 addListSelectionListener 添加到此 JList 中的所有 ListSelectionListener 所組成的陣列。

返回:
此列表上的所有 ListSelectionListener;如果沒有添加任何偵聽器,則返回空陣列
從以下版本開始:
1.4
另請參見:
addListSelectionListener(javax.swing.event.ListSelectionListener)

setSelectionModel

public void setSelectionModel(ListSelectionModel selectionModel)
將列表的 selectionModel 設置為非 nullListSelectionModel 實作。選擇模型可以完成單個選擇、連續範圍選擇和非連續範圍選擇等任務。

這是一個 JavaBeans 綁定屬性。

參數:
selectionModel - 實作選擇的 ListSelectionModel
拋出:
IllegalArgumentException - 如果 selectionModelnull
另請參見:
getSelectionModel()

setSelectionMode

public void setSelectionMode(int selectionMode)
設置列表的選擇網要。此方法是在選擇模型上直接設置選擇網要的覆寫方法。

以下列表描述了可接受的選擇網要:

參數:
selectionMode - 選擇網要
拋出:
IllegalArgumentException - 如果選擇網要不是那些允許的網要之一
另請參見:
getSelectionMode()

getSelectionMode

public int getSelectionMode()
返回列表的當前選擇網要。此方法是委託給列表的選擇模型上同名方法的覆寫方法。

返回:
當前選擇網要
另請參見:
setSelectionMode(int)

getAnchorSelectionIndex

public int getAnchorSelectionIndex()
返回定位選擇索引。此方法是委託給列表的選擇模型上同名方法的覆寫方法。

返回:
定位選擇索引
另請參見:
ListSelectionModel.getAnchorSelectionIndex()

getLeadSelectionIndex

public int getLeadSelectionIndex()
返回前導選擇索引。此方法是委託給列表的選擇模型上同名方法的覆寫方法。

返回:
前導選擇索引
另請參見:
ListSelectionModel.getLeadSelectionIndex()

getMinSelectionIndex

public int getMinSelectionIndex()
返回選擇的最小單元索引;如果選擇為空,則返回 -1。此方法是委託給列表的選擇模型上同名方法的覆寫方法。

返回:
選擇的最小單元索引或 -1
另請參見:
ListSelectionModel.getMinSelectionIndex()

getMaxSelectionIndex

public int getMaxSelectionIndex()
返回選擇的最大單元索引;如果選擇為空,則返回 -1。此方法是委託給列表的選擇模型上同名方法的覆寫方法。

返回:
選擇的最大單元索引
另請參見:
ListSelectionModel.getMaxSelectionIndex()

isSelectedIndex

public boolean isSelectedIndex(int index)
如果選擇了指定的索引,則返回 true;否則返回 false。此方法是委託給列表的選擇模型上同名方法的覆寫方法。

參數:
index - 要查詢其選擇狀態的索引
返回:
如果選擇了指定的索引,則返回 true;否則返回 false
另請參見:
ListSelectionModel.isSelectedIndex(int), setSelectedIndex(int)

isSelectionEmpty

public boolean isSelectionEmpty()
如果什麼也沒有選擇,則返回 true;否則返回 false。此方法是委託給列表的選擇模型上同名方法的覆寫方法。

返回:
如果什麼也沒有選擇,則返回 true;否則返回 false
另請參見:
ListSelectionModel.isSelectionEmpty(), clearSelection()

clearSelection

public void clearSelection()
清除選擇;調用此方法後,isSelectionEmpty 將返回 true。此方法是委託給列表的選擇模型上同名方法的覆寫方法。

另請參見:
ListSelectionModel.clearSelection(), isSelectionEmpty()

setSelectionInterval

public void setSelectionInterval(int anchor,
                                 int lead)
選擇指定的間隔。包括 anchorlead 兩個索引。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)
將選擇設置為指定間隔與當前選擇的並集。包括 anchorlead 兩個索引。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)
將選擇設置為指定間隔和當前選擇的差集。兩個索引 index0index1 都要移除。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) 的文檔。

參數:
b - 屬性的新值
另請參見:
ListSelectionModel.setValueIsAdjusting(boolean), ListSelectionEvent.getValueIsAdjusting(), getValueIsAdjusting()

getValueIsAdjusting

public boolean getValueIsAdjusting()
返回選擇模型的 isAdjusting 屬性的值。

此方法是委託給列表的選擇模型上同名方法的覆寫方法。

返回:
選擇模型的 isAdjusting 屬性的值。
另請參見:
setValueIsAdjusting(boolean), ListSelectionModel.getValueIsAdjusting()

getSelectedIndices

public int[] getSelectedIndices()
返回所選的全部索引的陣列(按升序排列)。

返回:
所選的全部索引(按升序排列);如果什麼也沒有選擇,則返回一個空陣列
另請參見:
removeSelectionInterval(int, int), addListSelectionListener(javax.swing.event.ListSelectionListener)

setSelectedIndex

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 - 要選擇的單元的索引陣列(為非 null
拋出:
NullPointerException - 如果給定陣列為 null
另請參見:
ListSelectionModel.addSelectionInterval(int, int), isSelectedIndex(int), addListSelectionListener(javax.swing.event.ListSelectionListener)

getSelectedValues

public Object[] getSelectedValues()
返回所有選擇值的陣列,根據其列表中的索引順序按升序排序。

返回:
所選值;如果什麼也沒有選擇,則返回一個空陣列
另請參見:
isSelectedIndex(int), getModel(), addListSelectionListener(javax.swing.event.ListSelectionListener)

getSelectedIndex

public int getSelectedIndex()
返回最小的選擇單元索引;只選擇了列表中單個項時,返回該選擇。選擇了多項時,則只返回最小的選擇索引。如果什麼也沒有選擇,則返回 -1

此方法是委託給 getMinSelectionIndex 的覆寫方法。

返回:
最小的選擇的單元索引
另請參見:
getMinSelectionIndex(), addListSelectionListener(javax.swing.event.ListSelectionListener)

getSelectedValue

public Object getSelectedValue()
返回最小的選擇單元索引的值;只選擇了列表中單個項時,返回所選值。選擇了多項時,返回最小的選擇索引的值。如果什麼也沒有選擇,則返回 null

此方法是返回 getMinSelectionIndex 的模型值的便捷方法。

返回:
所選的第一個值
另請參見:
getMinSelectionIndex(), getModel(), addListSelectionListener(javax.swing.event.ListSelectionListener)

setSelectedValue

public void setSelectedValue(Object anObject,
                             boolean shouldScroll)
從列表中選擇指定的物件。

參數:
anObject - 要選擇的物件
shouldScroll - 如果所選物件存在,但列表需要滾動才能顯示,則為 true;否則為 false

getPreferredScrollableViewportSize

public Dimension getPreferredScrollableViewportSize()
計算顯示 visibleRowCount 行所需的視口的大小。此方法所返回的值取決於佈局方向:

VERTICAL:
如果已(顯式地或通過指定一個原型單元值)設置了 fixedCellWidthfixedCellHeight,則此操作無足輕重。寬度是 fixedCellWidth 加上列表的水平 insets。高度是 fixedCellHeight 乘以 visibleRowCount 再加上列表的垂直 insets。

如果尚未指定 fixedCellWidthfixedCellHeight,則使用直觀推斷。模型為空時,如果 fixedCellWidth 大於 0,則寬度為 fixedCellWidth,否則為 256 的固定編碼 (hard coded) 值。如果 fixedCellHeight 大於 0,則高度為 fixedCellHeight 乘以 visibleRowCount;否則它是固定編碼 (hard coded) 值 16 乘以 visibleRowCount

如果模型不為空,則寬度為首選大小的寬度,通常是最寬的列表元素的寬度。高度是 fixedCellHeight 乘以 visibleRowCount 再加上列表的垂直 insets。

VERTICAL_WRAPHORIZONTAL_WRAP
此方法只返回 getPreferredSize 的返回值。期望列表的 ListUI 覆寫 getPreferredSize 以返回適當的值。

指定者:
介面 Scrollable 中的 getPreferredScrollableViewportSize
返回:
包含顯示 visibleRowCount 行所需視口大小的 dimension
另請參見:
getPreferredScrollableViewportSize(), setPrototypeCellValue(java.lang.Object)

getScrollableUnitIncrement

public int getScrollableUnitIncrement(Rectangle visibleRect,
                                      int orientation,
                                      int direction)
返回為顯露上一個或下一個行(垂直滾動)或列(水平滾動)而滾動的距離。

對於水平滾動,如果佈局方向為 VERTICAL,則返回列表的字體大小(如果字體為 null,則返回 1)。

指定者:
介面 Scrollable 中的 getScrollableUnitIncrement
參數:
visibleRect - 視口中可見的視圖區域
orientation - SwingConstants.HORIZONTALSwingConstants.VERTICAL
direction - 小於等於 0 表示向上滾動/後退,大於 0 表示向下滾動/前進
返回:
沿指定方向滾動的「單位」增量;永遠為正數
拋出:
IllegalArgumentException - 如果 visibleRectnull,或者 orientation 不為 SwingConstants.VERTICALSwingConstants.HORIZONTAL
另請參見:
getScrollableBlockIncrement(java.awt.Rectangle, int, int), Scrollable.getScrollableUnitIncrement(java.awt.Rectangle, int, int)

getScrollableBlockIncrement

public int getScrollableBlockIncrement(Rectangle visibleRect,
                                       int orientation,
                                       int direction)
返回為顯露上一個或下一個塊而滾動的距離。

對於垂直滾動,使用以下規則:

對於水平滾動,當佈局方向為 VERTICAL_WRAPHORIZONTAL_WRAP 時:

對於水平滾動和 VERTICAL 方向,則返回 visibleRect.width

注意,visibleRect 的值必須等於 this.getVisibleRect()

指定者:
介面 Scrollable 中的 getScrollableBlockIncrement
參數:
visibleRect - 視口中可見的視圖區域
orientation - SwingConstants.HORIZONTALSwingConstants.VERTICAL
direction - 小於等於 0 表示向上滾動/後退,大於 0 表示向下滾動/前進
返回:
沿指定方向滾動的「塊」增量;永遠為負數
拋出:
IllegalArgumentException - 如果 visibleRectnull,或者 orientation 不為 SwingConstants.VERTICALSwingConstants.HORIZONTAL
另請參見:
getScrollableUnitIncrement(java.awt.Rectangle, int, int), Scrollable.getScrollableBlockIncrement(java.awt.Rectangle, int, int)

getScrollableTracksViewportWidth

public boolean getScrollableTracksViewportWidth()
如果此 JListJViewport 中顯示並且視口的寬度大於列表的首選寬度,或者佈局方向為 HORIZONTAL_WRAPvisibleRowCount <= 0,則返回 true;否則返回 false

如果返回 false,則不追蹤視口寬度。如果 JViewport 本身嵌入在 JScrollPane 中,則此操作允許水平滾動。

指定者:
介面 Scrollable 中的 getScrollableTracksViewportWidth
返回:
封閉視口是否強制列表的寬度與其自身寬度比對
另請參見:
Scrollable.getScrollableTracksViewportWidth()

getScrollableTracksViewportHeight

public boolean getScrollableTracksViewportHeight()
如果此 JListJViewport 中顯示並且視口的高度大於列表的首選高度,或者佈局方向為 VERTICAL_WRAPvisibleRowCount <= 0,則返回 true;否則返回 false

如果返回 false,則不追蹤視口高度。如果 JViewport 本身嵌入在 JScrollPane 中,則此操作允許垂直滾動。

指定者:
介面 Scrollable 中的 getScrollableTracksViewportHeight
返回:
封閉視口是否強制列表的高度與其自身高度比對
另請參見:
Scrollable.getScrollableTracksViewportHeight()

paramString

protected String paramString()
返回此 JListString 表示形式。此方法僅在進行除錯的時候使用,對於各個實作,所返回 String 的內容和格式可能有所不同。返回的 String 可以為空,但不可以為 null

覆寫:
類別 JComponent 中的 paramString
返回:
JListString 表示形式。

getAccessibleContext

public AccessibleContext getAccessibleContext()
獲取與此 JList 關聯的 AccessibleContext。對於 JListAccessibleContext 採取 AccessibleJList 的形式。

如有必要,可以創建一個新的 AccessibleJList 實例。

指定者:
介面 Accessible 中的 getAccessibleContext
覆寫:
類別 JComponent 中的 getAccessibleContext
返回:
一個 AccessibleJList,它充當此 JListAccessibleContext

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only