Module  java.desktop
软件包  java.awt

Class List

  • All Implemented Interfaces:
    ImageObserverItemSelectableMenuContainerSerializableAccessible


    public class List
    extends Component
    implements ItemSelectable, Accessible
    List组件向用户显示文本项的滚动列表。 可以设置列表,以便用户可以选择一个项目或多个项目。

    例如,代码。


     List lst = new List(4, false);
     lst.add("Mercury");
     lst.add("Venus");
     lst.add("Earth");
     lst.add("JavaSoft");
     lst.add("Mars");
     lst.add("Jupiter");
     lst.add("Saturn");
     lst.add("Uranus");
     lst.add("Neptune");
     lst.add("Pluto");
     cnt.add(lst);
     

    其中cnt是一个容器,生成以下滚动列表:

    显示一个包含:金星,地球,JavaSoft和火星的列表。选择了Javasoft。

    如果列表允许多个选择,则单击已选择的项目将取消选择。 在上述示例中,一次只能选择滚动列表中的一个项目,因为创建新滚动列表时的第二个参数是false 如果列表不允许多个选择,则选择一个项目将导致任何其他所选项目被取消选择。

    请注意,所示示例中的列表是使用四个可见行创建的。 创建列表后,无法更改可见行数。 创建一个默认的List四行,这样lst = new List()相当于list = new List(4, false)

    从Java 1.1开始,抽象窗口工具包会发送List对象上的所有鼠标,键盘和焦点事件。 (旧AWT事件模型仅用于向后兼容性,不鼓励使用)。

    当用户选择或取消选择项目时,AWT会向列表发送一个ItemEvent的实例。 当用户双击滚动列表中的项目时,AWT会在项目事件ActionEvent向列表发送一个ActionEvent的实例。 当选择列表中的项目时,AWT还会生成一个动作事件,当用户按下返回键时。

    如果应用程序想要根据用户选择或激活的此列表中的项目执行某些操作,则应根据需要实现ItemListenerActionListener ,并注册新的监听器以从该列表接收事件。

    对于多选择滚动列表,它被认为是更好的用户界面来使用外部手势(例如单击按钮)来触发动作。

    从以下版本开始:
    1.0
    另请参见:
    ItemEventItemListenerActionEventActionListenerSerialized Form
    • 构造方法详细信息

      • List

        public List​()
             throws HeadlessException
        创建一个新的滚动列表。 默认情况下,有四条可见行,不允许多个选择。 请注意,这是一个方便的方法List(0, false) 另请注意,列表中的可见行数在创建后不能更改。
        异常
        HeadlessException - 如果GraphicsEnvironment.isHeadless()返回true。
        另请参见:
        GraphicsEnvironment.isHeadless()
      • List

        public List​(int rows)
             throws HeadlessException
        创建一个以指定数量的可见行初始化的新滚动列表。 默认情况下,不允许多个选择。 请注意,这是一个方便的方法List(rows, false) 还要注意,列表中可见行的数量在创建后不能更改。
        参数
        rows - 要显示的项目数。
        异常
        HeadlessException - 如果GraphicsEnvironment.isHeadless()返回true。
        从以下版本开始:
        1.1
        另请参见:
        GraphicsEnvironment.isHeadless()
      • List

        public List​(int rows,
                    boolean multipleMode)
             throws HeadlessException
        创建一个初始化的新滚动列表,以显示指定的行数。 请注意,如果指定了零行,则将创建列表,其默认值为四行。 还要注意,列表中可见行的数量在创建后不能更改。 如果multipleMode值为true ,则用户可以从列表中选择多个项目。 如果是false ,则false只能选择一个项目。
        参数
        rows - 要显示的项目数。
        multipleMode - 如果是true ,则允许多个选择; 否则,一次只能选择一个项目。
        异常
        HeadlessException - 如果GraphicsEnvironment.isHeadless()返回true。
        另请参见:
        GraphicsEnvironment.isHeadless()
    • 方法详细信息

      • getItemCount

        public int getItemCount​()
        获取列表中的项目数。
        结果
        列表中的项目数
        从以下版本开始:
        1.1
        另请参见:
        getItem(int)
      • countItems

        @Deprecated
        public int countItems​()
        已过时。 从JDK 1.1版开始,由getItemCount()替代。
        返回列表中的项目数。
        结果
        列表中的项目数
      • getItem

        public String getItem​(int index)
        获取与指定索引关联的项目。
        参数
        index - 项目的位置
        结果
        与指定索引相关联的项目
        另请参见:
        getItemCount()
      • add

        public void add​(String item)
        将指定的项目添加到滚动列表的末尾。
        参数
        item - 要添加的项目
        从以下版本开始:
        1.1
      • addItem

        @Deprecated
        public void addItem​(String item)
        已过时。 替换为add(String)
        将指定的项目添加到列表的末尾。
        参数
        item - 要添加的项目
      • add

        public void add​(String item,
                        int index)
        在指定的位置将指定的项目添加到滚动列表。 索引为零。 如果索引的值小于零,或者如果索引的值大于或等于列表中的项目数,则将项添加到列表的末尾。
        参数
        item - 要添加的项目; 如果此参数为null则该项目被视为空字符串, ""
        index - 添加项目的位置
        从以下版本开始:
        1.1
      • addItem

        @Deprecated
        public void addItem​(String item,
                            int index)
        已过时。 替换为add(String, int)
        在索引指示的位置将指定的项目添加到列表中。
        参数
        item - 要添加的项目
        index - 添加项目的位置
      • replaceItem

        public void replaceItem​(String newValue,
                                int index)
        使用新的字符串替换滚动列表中指定索引处的项目。
        参数
        newValue - 用于替换现有项目的新字符串
        index - 要更换的项目的位置
        异常
        ArrayIndexOutOfBoundsException - 如果 index超出范围
      • clear

        @Deprecated
        public void clear​()
        已过时。 从JDK 1.1版开始,替换为removeAll()
      • remove

        public void remove​(String item)
        从列表中删除项目的第一次出现。 如果选择了指定的项目,并且是列表中唯一选择的项目,列表将被设置为没有选择。
        参数
        item - 要从列表中删除的项目
        异常
        IllegalArgumentException - 如果项目不存在于列表中
        从以下版本开始:
        1.1
      • remove

        public void remove​(int position)
        从此滚动列表中移除指定位置的项目。 如果选择了具有指定位置的项目,并且是列表中唯一选择的项目,列表将被设置为不选择。
        参数
        position - 要删除的项目的索引
        异常
        ArrayIndexOutOfBoundsException - 如果 position小于0或大于 getItemCount()-1
        从以下版本开始:
        1.1
        另请参见:
        add(String, int)
      • delItem

        @Deprecated
        public void delItem​(int position)
        已过时。 替换为remove(String)remove(int)
        删除指定位置的项目。
        参数
        position - 要删除的项目的索引
      • getSelectedIndex

        public int getSelectedIndex​()
        获取列表中所选项目的索引,
        结果
        所选项目的索引; 如果没有选择项目,或者如果选择了多个项目,则返回-1
        另请参见:
        select(int)deselect(int)isIndexSelected(int)
      • getSelectedIndexes

        public int[] getSelectedIndexes​()
        获取列表中选定的索引。
        结果
        该滚动列表中所选索引的数组; 如果未选择任何项目,则返回零长度数组。
        另请参见:
        select(int)deselect(int)isIndexSelected(int)
      • getSelectedItem

        public String getSelectedItem​()
        获取此滚动列表中选定的项目。
        结果
        列表中选定的项目; 如果没有选择项目,或者如果选择了多个项目,则返回null
        另请参见:
        select(int)deselect(int)isIndexSelected(int)
      • getSelectedItems

        public String[] getSelectedItems​()
        获取此滚动列表中选定的项目。
        结果
        该滚动列表中所选项目的数组; 如果未选择任何项目,则返回零长度数组。
        另请参见:
        select(int)deselect(int)isIndexSelected(int)
      • getSelectedObjects

        public Object[] getSelectedObjects​()
        在对象数组中获取此滚动列表中选定的项目。
        Specified by:
        getSelectedObjects在接口 ItemSelectable
        结果
        表示此滚动列表上所选项目的数组Object s; 如果未选择任何项目,则返回零长度数组。
        另请参见:
        getSelectedItems()ItemSelectable
      • select

        public void select​(int index)
        在滚动列表中选择指定索引处的项目。

        请注意,超出范围参数无效,将导致未指定的行为。

        请注意,此方法应主要用于初始选择此组件中的项目。 以编程方式调用此方法不会触发ItemEvent 触发ItemEvent的唯一方法是通过用户交互。

        参数
        index - 要选择的项目的位置
        另请参见:
        getSelectedItem()deselect(int)isIndexSelected(int)
      • deselect

        public void deselect​(int index)
        取消选择指定索引处的项目。

        请注意,超出范围参数无效,将导致未指定的行为。

        如果未选择指定索引处的项目,则忽略该操作。

        参数
        index - 要取消选择的项目的位置
        另请参见:
        select(int)getSelectedItem()isIndexSelected(int)
      • isIndexSelected

        public boolean isIndexSelected​(int index)
        确定是否选择了此滚动列表中的指定项目。
        参数
        index - 要检查的项目
        结果
        true如果指定的项目已被选中; false否则
        从以下版本开始:
        1.1
        另请参见:
        select(int)deselect(int)
      • isSelected

        @Deprecated
        public boolean isSelected​(int index)
        已过时。 从JDK 1.1版开始,由isIndexSelected(int)替代。
        确定列表中指定的项是否被选中。
        参数
        index - 指定要检查的项目
        结果
        true如果选择该项目; 否则false
      • getRows

        public int getRows​()
        获取此列表中的可见行数。 注意,一旦创建了这个List ,这个数字就永远不会改变。
        结果
        此滚动列表中的可见行数
      • isMultipleMode

        public boolean isMultipleMode​()
        确定此列表是否允许多个选择。
        结果
        true如果此列表允许多个选择; 否则, false
        从以下版本开始:
        1.1
        另请参见:
        setMultipleMode(boolean)
      • allowsMultipleSelections

        @Deprecated
        public boolean allowsMultipleSelections​()
        已过时。 从JDK 1.1版开始,由isMultipleMode()替代。
        确定此列表是否允许多个选择。
        结果
        true如果此列表允许多个选择; 否则false
      • setMultipleMode

        public void setMultipleMode​(boolean b)
        设置确定此列表是否允许多个选择的标志。 当选择模式从多选择更改为单选时,所选项目将如下更改:如果所选项目具有位置光标,则只会选择该项目。 如果没有选定的项目具有位置光标,则所有项目将被取消选择。
        参数
        b - 如果true则允许多个选择; 否则,只能从列表中选择一个项目
        从以下版本开始:
        1.1
        另请参见:
        isMultipleMode()
      • setMultipleSelections

        @Deprecated
        public void setMultipleSelections​(boolean b)
        已过时。 从JDK 1.1版开始,由setMultipleMode(boolean)替代。
        启用或禁用此列表的多选模式。
        参数
        b - true启用多模式,否则为 false
      • getVisibleIndex

        public int getVisibleIndex​()
        获取方法 makeVisible上次显示的项目的索引。
        结果
        上次显示的项目的索引
        另请参见:
        makeVisible(int)
      • makeVisible

        public void makeVisible​(int index)
        使指定索引处的项目可见。
        参数
        index - 项目的位置
        另请参见:
        getVisibleIndex()
      • getPreferredSize

        public Dimension getPreferredSize​(int rows)
        获取具有指定行数的列表的首选尺寸。
        参数
        rows - 列表中的行数
        结果
        给定指定行数必须可见的显示此滚动列表的首选尺寸
        从以下版本开始:
        1.1
        另请参见:
        Component.getPreferredSize()
      • preferredSize

        @Deprecated
        public Dimension preferredSize​(int rows)
        已过时。 从JDK 1.1版开始,替换为getPreferredSize(int)
        返回此组件的首选大小,假设它具有指定的行数。
        参数
        rows - 行数
        结果
        用于显示此列表的首选尺寸
      • preferredSize

        @Deprecated
        public Dimension preferredSize​()
        已过时。 自JDK 1.1版起,由getPreferredSize()取代。
        描述从类别复制: Component
        返回组件的首选大小。
        重写:
        preferredSizeComponent
        结果
        该组件的首选尺寸
      • getMinimumSize

        public Dimension getMinimumSize​(int rows)
        获取具有指定行数的列表的最小尺寸。
        参数
        rows - 列表中的行数
        结果
        给定指定行数必须可见的显示此滚动列表的最小尺寸
        从以下版本开始:
        1.1
        另请参见:
        Component.getMinimumSize()
      • minimumSize

        @Deprecated
        public Dimension minimumSize​(int rows)
        已过时。 从JDK 1.1版开始,由getMinimumSize(int)替代。
        返回具有指定行数的列表的最小尺寸。
        参数
        rows - 列表中的行数
        结果
        显示此列表的最小尺寸
      • minimumSize

        @Deprecated
        public Dimension minimumSize​()
        已过时。 从JDK 1.1版开始,替换为getMinimumSize()
        描述从类复制: Component
        返回此组件的最小大小。
        重写:
        minimumSizeComponent
        结果
        该组件的最小尺寸
      • getListeners

        public <T extends EventListener> T[] getListeners​(Class<T> listenerType)
        返回此List当前注册为FooListener的所有对象的数组。 FooListener使用addFooListener方法注册。

        您可以使用类文字指定listenerType参数,如FooListener.class 例如,您可以使用以下代码查询List l其项监听器:

          ItemListener[] ils = (ItemListener[])(l.getListeners(ItemListener.class)); 
        如果没有这样的侦听器存在,这个方法返回一个空数组。
        重写:
        getListenersComponent
        参数类型
        T - 听众的类型
        参数
        listenerType - 所请求的听众的类型; 此参数应指定从java.util.EventListener下降的接口
        结果
        在此列表中注册为 FooListener的所有对象的数组,如果没有添加此类侦听器,则为空数组
        异常
        ClassCastException - 如果 listenerType未指定实现 java.util.EventListener的类或接口
        从以下版本开始:
        1.3
        另请参见:
        getItemListeners()
      • processItemEvent

        protected void processItemEvent​(ItemEvent e)
        通过将其发送到任何已注册的ItemListener对象来处理在此列表上发生的项目事件。

        除非为此组件启用项目事件,否则不会调用此方法。 当以下情况发生时,项目事件被启用:

        • 一个ItemListener对象通过addItemListener注册。
        • 项目事件通过enableEvents启用。

        请注意,如果事件参数为null该行为是未指定的,可能会导致异常。

        参数
        e - 项目事件
        从以下版本开始:
        1.1
        另请参见:
        ItemEventItemListeneraddItemListener(java.awt.event.ItemListener)Component.enableEvents(long)
      • processActionEvent

        protected void processActionEvent​(ActionEvent e)
        通过将此组件发送到任何已注册的ActionListener对象来处理此组件上发生的操作事件。

        除非为此组件启用了操作事件,否则不会调用此方法。 当发生以下情况之一时,启用操作事件:

        • 通过addActionListener注册一个ActionListener对象。
        • 操作事件通过enableEvents启用。

        请注意,如果事件参数为null则行为未指定,可能会导致异常。

        参数
        e - 动作事件
        从以下版本开始:
        1.1
        另请参见:
        ActionEventActionListeneraddActionListener(java.awt.event.ActionListener)Component.enableEvents(long)
      • paramString

        protected String paramString​()
        返回表示此滚动列表状态的参数字符串。 此字符串对于调试很有用。
        重写:
        paramStringComponent
        结果
        该滚动列表的参数字符串
      • delItems

        @Deprecated
        public void delItems​(int start,
                             int end)
        已过时。 从JDK 1.1版开始,未来不会公开使用。 这种方法只能作为一个包私有方法保留。
        删除指定索引范围内的列表项。
        参数
        start - 要删除的范围的开始索引
        end - 要删除的范围的结束索引
      • getAccessibleContext

        public AccessibleContext getAccessibleContext​()
        获取AccessibleContext与此List相关联。 对于名单中, AccessibleContext需要一个形式AccessibleAWTList 如果需要,将创建一个新的AccessibleAWTList实例。
        Specified by:
        getAccessibleContext在接口 Accessible
        重写:
        getAccessibleContextComponent
        结果
        一个 AccessibleAWTList ,作为 AccessibleContext的这个 List
        从以下版本开始:
        1.3