Module java.desktop
Package java.awt

Class Choice

所有已实现的接口:
ImageObserver, ItemSelectable, MenuContainer, Serializable, Accessible

public class Choice extends Component implements ItemSelectable, Accessible
Choice类提供了一个选择菜单。当前选择将显示为菜单的标题。

以下代码示例生成一个选择菜单:


 Choice ColorChooser = new Choice();
 ColorChooser.add("Green");
 ColorChooser.add("Red");
 ColorChooser.add("Blue");
 

将此选择菜单添加到面板后,它在正常状态下显示如下:

以下文本描述了图形

在图片中,"Green"是当前选择。按下鼠标按钮会导致出现一个菜单,当前选择会被突出显示。

一些本地平台不支持对Choice组件进行任意调整大小,setSize()/getSize()的行为受到此类限制的约束。本地GUI Choice组件的大小通常受到字体大小和Choice中包含的项目长度等属性的限制。

自版本:
1.0
参见:
  • Constructor Details

  • Method Details

    • addNotify

      public void addNotify()
      创建Choice的对等体。此对等体允许我们更改Choice的外观而不更改其功能。
      覆盖:
      addNotify 在类 Component
      参见:
    • getItemCount

      public int getItemCount()
      返回此Choice菜单中的项目数。
      返回:
      Choice菜单中的项目数
      自版本:
      1.1
      参见:
    • countItems

      @Deprecated public int countItems()
      Deprecated.
      As of JDK version 1.1, replaced by getItemCount().
      返回此Choice菜单中的项目数。
      返回:
      Choice菜单中的项目数
    • getItem

      public String getItem(int index)
      获取此Choice菜单中指定索引处的字符串。
      参数:
      index - 要开始的索引
      返回:
      指定索引处的项目
      参见:
    • add

      public void add(String item)
      向此Choice菜单添加一个项目。
      参数:
      item - 要添加的项目
      抛出:
      NullPointerException - 如果项目的值为null
      自版本:
      1.1
    • addItem

      public void addItem(String item)
      自Java 2平台v1.1起已过时。请改用add方法。

      向此Choice菜单添加一个项目。

      参数:
      item - 要添加的项目
      抛出:
      NullPointerException - 如果项目的值等于null
    • insert

      public void insert(String item, int index)
      在指定位置将项目插入此选择中。将大于或等于index的现有项目向上移动一个位置以容纳新项目。如果index大于或等于此选择中的项目数,则将item添加到此选择的末尾。

      如果项目是添加到选择中的第一个项目,则该项目将成为选定项目。否则,如果选定项目是被移动的项目之一,则选择中的第一个项目将成为选定项目。如果选定项目不是被移动的项目之一,则保持选定项目不变。

      参数:
      item - 要插入的非null项目
      index - 应插入项目的位置
      抛出:
      IllegalArgumentException - 如果索引小于0
    • remove

      public void remove(String item)
      Choice菜单中删除item的第一个出现。如果要删除的项目是当前选定项目,则选择中的第一个项目将成为选定项目。否则,当前选定项目保持选定(并相应更新选定索引)。
      参数:
      item - 要从此Choice菜单中删除的项目
      抛出:
      IllegalArgumentException - 如果项目在选择菜单中不存在
      自版本:
      1.1
    • remove

      public void remove(int position)
      在指定位置从选择菜单中删除项目。如果要删除的项目是当前选定项目,则选择中的第一个项目将成为选定项目。否则,当前选定项目保持选定(并相应更新选定索引)。
      参数:
      position - 项目的位置
      抛出:
      IndexOutOfBoundsException - 如果指定位置超出范围
      自版本:
      1.1
    • removeAll

      public void removeAll()
      从选择菜单中删除所有项目。
      自版本:
      1.1
      参见:
    • getSelectedItem

      public String getSelectedItem()
      获取当前选择的表示作为字符串。
      返回:
      此选择菜单中当前选定项目的字符串表示
      参见:
    • getSelectedObjects

      public Object[] getSelectedObjects()
      返回包含当前选定项目的数组(长度为1)。如果此选择没有项目,则返回null
      指定者:
      getSelectedObjects 在接口 ItemSelectable
      返回:
      选定对象的列表,或null
      参见:
    • getSelectedIndex

      public int getSelectedIndex()
      返回当前选定项目的索引。如果没有选定任何内容,则返回-1。
      返回值:
      当前选定项的索引,如果当前没有选定项则返回-1
      参见:
    • select

      public void select(int pos)
      将此Choice菜单中指定位置的项设置为选定项。

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

      参数:
      pos - 选定项的位置
      抛出:
      IllegalArgumentException - 如果指定位置大于项数或小于零
      参见:
    • select

      public void select(String str)
      将此Choice菜单中名称等于指定字符串的项设置为选定项。如果有多个项与指定字符串匹配(相等),则选择索引最小的项。

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

      参数:
      str - 指定的字符串
      参见:
    • addItemListener

      public void addItemListener(ItemListener l)
      向此Choice菜单添加指定的项监听器以接收来自该菜单的项事件。项事件是响应用户输入发送的,但不是响应对select的调用。如果l为null,则不会抛出异常且不执行任何操作。

      有关AWT线程模型的详细信息,请参阅AWT线程问题

      指定者:
      addItemListener 在接口 ItemSelectable
      参数:
      l - 项监听器
      自1.1起:
      1.1
      参见:
    • removeItemListener

      public void removeItemListener(ItemListener l)
      从此Choice菜单中删除指定的项监听器,使其不再接收来自该菜单的项事件。如果l为null,则不会抛出异常且不执行任何操作。

      有关AWT线程模型的详细信息,请参阅AWT线程问题

      指定者:
      removeItemListener 在接口 ItemSelectable
      参数:
      l - 项监听器
      自1.1起:
      1.1
      参见:
    • getItemListeners

      public ItemListener[] getItemListeners()
      返回在此选择项上注册的所有项监听器的数组。
      返回值:
      所有此选择项的ItemListener或如果当前没有注册项监听器则返回空数组
      自1.4起:
      1.4
      参见:
    • getListeners

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

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

      ItemListener[] ils = (ItemListener[])(c.getListeners(ItemListener.class));
      如果不存在此类监听器,则此方法返回一个空数组。
      覆盖:
      getListeners 在类 Component
      类型参数:
      T - 监听器的类型
      参数:
      listenerType - 请求的监听器类型;此参数应指定从java.util.EventListener继承的接口
      返回值:
      在此选择项上注册为FooListener的所有对象的数组,如果没有添加此类监听器则返回空数组
      抛出:
      ClassCastException - 如果listenerType未指定实现java.util.EventListener的类或接口
      自1.3起:
      1.3
      参见:
    • processEvent

      protected void processEvent(AWTEvent e)
      处理此选择项上的事件。如果事件是ItemEvent的实例,则调用processItemEvent方法。否则,调用其超类的processEvent方法。

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

      覆盖:
      processEvent 在类 Component
      参数:
      e - 事件
      自1.1起:
      1.1
      参见:
    • processItemEvent

      protected void processItemEvent(ItemEvent e)
      处理在此Choice菜单上发生的项事件,将其分派给任何注册的ItemListener对象。

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

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

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

      参数:
      e - 项事件
      自1.1起:
      1.1
      参见:
    • paramString

      protected String paramString()
      返回表示此Choice菜单状态的字符串。此方法仅用于调试目的,返回的字符串的内容和格式可能因实现而异。返回的字符串可能为空,但不会是null
      覆盖:
      paramString 在类 Component
      返回值:
      Choice菜单的参数字符串
    • getAccessibleContext

      public AccessibleContext getAccessibleContext()
      获取与此Choice关联的AccessibleContext。对于Choice组件,AccessibleContext采用AccessibleAWTChoice的形式。如有必要,将创建一个新的AccessibleAWTChoice实例。
      指定者:
      getAccessibleContext 在接口 Accessible
      覆盖:
      getAccessibleContext 在类 Component
      返回值:
      作为此ChoiceAccessibleContextAccessibleAWTChoice
      自1.3起:
      1.3