模块 java.desktop
 java.awt

类 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");
 

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

The following text describes the
 graphic

图中,"Green"为当前选择。在对象上按下鼠标按钮会出现一个菜单,其中突出显示当前选项。

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

自从:
1.0
参见:
  • 构造方法详细信息

  • 方法详情

    • addNotify

      public void addNotify()
      创建 Choice 的对等体。这个对等点允许我们在不改变其功能的情况下改变 Choice 的外观。
      重写:
      addNotify 在类 Component
      参见:
    • getItemCount

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

      @Deprecated public int countItems()
      已弃用。
      从 JDK 1.1 版开始,由 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 菜单中的所选项目设置为指定位置的项目。

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

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

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

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

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

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

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

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

      public void removeItemListener(ItemListener  l)
      删除指定的项目监听器,以便它不再接收来自此 Choice 菜单的项目事件。如果 l 是 null ,则不会抛出异常并且不会执行任何操作。

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

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

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

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

      您可以使用类文字指定 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
      参见:
    • processEvent

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

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

      重写:
      processEvent 在类 Component
      参数:
      e - 事件
      自从:
      1.1
      参见:
    • processItemEvent

      protected void processItemEvent(ItemEvent  e)
      通过将它们分派到任何已注册的 ItemListener 对象来处理在此 Choice 菜单上发生的项目事件。

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

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

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

      参数:
      e - 项目事件
      自从:
      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
      返回:
      一个 AccessibleAWTChoice 作为这个 ChoiceAccessibleContext
      自从:
      1.3