JComboBox

优质
小牛编辑
126浏览
2023-12-01

介绍 (Introduction)

JComboBox类是一个组合按钮或可编辑字段和下拉列表的组件。

Class 声明 (Class Declaration)

以下是javax.swing.JComboBox类的声明 -

public class JComboBox
   extends JComponent
      implements ItemSelectable, ListDataListener, ActionListener, Accessible

字段 (Field)

以下是javax.swing.JList类的字段 -

  • protected String actionCommand - 此受保护字段是特定于实现的。

  • protected ComboBoxModel dataModel - 此受保护字段是特定于实现的。

  • protected ComboBoxEditor editor - 此受保护字段是特定于实现的。

  • protected boolean isEditable - 此受保护字段是特定于实现的。

  • protected JComboBox.KeySelectionManager keySelectionManager - 此受保护字段是特定于实现的。

  • protected boolean lightWeightPopupEnabled - 此受保护字段是特定于实现的。

  • protected int maximumRowCount - 此受保护字段是特定于实现的。

  • protected ListCellRenderer renderer - 此受保护字段是特定于实现的。

  • protected Object selectedItemReminder - 此受保护字段是特定于实现的。

类构造函数 (Class Constructors)

Sr.No.构造函数和描述
1

JComboBox()

使用默认数据模型创建JComboBox。

2

JComboBox(ComboBoxModel aModel)

创建一个JComboBox,从现有的ComboBoxModel中获取其项目。

3

JComboBox(Object[] items)

创建一个包含指定数组中元素的JComboBox。

4

JComboBox(Vector《?》 items)

创建一个包含指定Vector中元素的JComboBox。

Class Methods

Sr.No.方法和描述
1

void actionPerformed(ActionEvent e)

该方法作为实现副作用公开。

2

protected void actionPropertyChanged(Action action, String propertyName)

更新ComboBox的状态以响应相关操作中的属性更改。

3

void addActionListener(ActionListener l)

添加ActionListener。

4

void addItem(Object anObject)

将项添加到项列表中。

5

void addItemListener(ItemListener aListener)

添加ItemListener。

6

void addPopupMenuListener(PopupMenuListener l)

添加一个PopupMenu侦听器,它将侦听来自ComboBox弹出部分的通知消息。

7

void configureEditor(ComboBoxEditor anEditor, Object anItem)

使用指定的项初始化编辑器。

8

protected void configurePropertiesFromAction(Action a)

设置此ComboBox上的属性以匹配指定Action中的属性。

9

void contentsChanged(ListDataEvent e)

该方法作为实现副作用公开。

10

protected PropertyChangeListener createActionPropertyChangeListener(Action a)

创建并返回一个PropertyChangeListener,负责监听指定Action的更改并更新相应的属性。

11

protected JComboBox.KeySelectionManager createDefaultKeySelectionManager()

返回默认键选择管理器的实例。

12

protected void fireActionEvent()

通知所有已注册对此事件类型的通知感兴趣的听众。

13

protected void fireItemStateChanged(ItemEvent e)

通知所有已注册对此事件类型的通知感兴趣的听众。

14

void firePopupMenuCanceled()

通知PopupMenuListeners已取消ComboBox的弹出部分。

15

void firePopupMenuWillBecomeInvisible()

通知PopupMenuListeners ComboBox的弹出部分已变为不可见。

16

void firePopupMenuWillBecomeVisible()

通知PopupMenuListeners ComboBox的弹出部分将变为可见。

17

AccessibleContext getAccessibleContext()

获取与此JComboBox关联的AccessibleContext。

18

Action getAction()

返回此ActionEvent源的当前设置Action,如果未设置Action,则返回null。

19

String getActionCommand()

返回发送给动作侦听器的事件中包含的动作命令。

20

ActionListener[] getActionListeners()

返回使用addActionListener()添加到此JComboBox的所有ActionListener的数组。

21

ComboBoxEditor getEditor()

返回用于在JComboBox字段中绘制和编辑所选项的编辑器。

22

Object getItemAt(int index)

返回指定索引处的列表项。

23

int getItemCount()

返回列表中的项目数。

24

ItemListener[] getItemListeners()

返回使用addItemListener()添加到此JComboBox的所有ItemListener的数组。

25

JComboBox.KeySelectionManager getKeySelectionManager()

返回列表的键选择管理器。

26

int getMaximumRowCount()

返回组合框在没有滚动条的情况下可以显示的最大项目数。

27

ComboBoxMode getModel()

返回JComboBox当前使用的数据模型。

28

PopupMenuListener[]getPopupMenuListeners()

返回使用addPopupMenuListener()添加到此JComboBox的所有PopupMenuListener的数组。

29

Object getPrototypeDisplayValue()

返回“原型显示”值 - 用于计算显示高度和宽度的Object。

30

ListCellRenderer getRenderer()

返回用于在JComboBox字段中显示所选项的渲染器。

31

int getSelectedIndex()

返回列表中与给定项匹配的第一项。

32

Object getSelectedItem()

返回当前选定的项目。

33

Object[] getSelectedObjects()

返回包含所选项的数组。

34

ComboBoxUI getUI()

返回呈现此组件的L&F对象。

35

String getUIClassID()

返回呈现此组件的L&F类的名称。

36

void hidePopup()

使ComboBox关闭其弹出窗口。

37

void insertItemAt(Object anObject, int index)

将项目插入到给定索引的项目列表中。

38

protected void installAncestorListener()

39

void intervalAdded(ListDataEvent e)

该方法作为实现副作用公开。

40

void intervalRemoved(ListDataEvent e)

该方法作为实现副作用公开。

41

boolean isEditable()

如果JComboBox可编辑,则返回true。

42

boolean isLightWeightPopupEnabled()

获取lightWeightPopupEnabled属性的值。

43

boolean isPopupVisible()

确定弹出窗口的可见性。

44

protected String paramString()

返回此JComboBox的字符串表示形式。

45

void processKeyEvent(KeyEvent e)

处理KeyEvents,查找Tab键。

46

void removeActionListener(ActionListener l)

删除ActionListener。

47

void removeAllItems()

从项目列表中删除所有项目。

48

void removeItem(Object anObject)

从项目列表中删除项目。

49

void removeItemAt(int anIndex)

从anIndex中删除项目此方法仅在JComboBox使用可变数据模型时有效。

50

void removeItemListener(ItemListener aListener)

删除ItemListener。

51

void removePopupMenuListener(PopupMenuListener l)

删除PopupMenuListener。

52

protected void selectedItemChanged()

此受保护方法是特定于实现的。

53

boolean selectWithKeyChar(char keyChar)

选择与指定键盘字符对应的列表项,如果有与该字符对应的项,则返回true。

54

void setAction(Action a)

设置ActionEvent源的Action。

55

void setActionCommand(String aCommand)

设置应该包含在发送给动作侦听器的事件中的动作命令。

56

void setEditable(boolean aFlag)

确定JComboBox字段是否可编辑。

57

void setEditor(ComboBoxEditor anEditor)

设置用于在JComboBox字段中绘制和编辑所选项目的编辑器。

58

void setEnabled(boolean b)

启用ComboBox以便可以选择项目。

59

void setKeySelectionManager(JComboBox.KeySelectionManager aManager)

设置对象将键盘字符转换为列表选择。

60

void setLightWeightPopupEnabled(boolean aFlag)

设置lightWeightPopupEnabled属性,该属性提供关于是否应该使用轻量级组件来包含JComboBox的提示,而不是重量级组件(如Panel或Window)。

61

void setMaximumRowCount(int count)

设置JComboBox显示的最大行数。

62

void setModel(ComboBoxModel aModel)

设置JComboBox用于获取项列表的数据模型。

63

void setPopupVisible(boolean v)

设置弹出窗口的可见性。

64

void setPrototypeDisplayValue(Object prototypeDisplayValue)

设置用于计算UI部分的显示大小的原型显示值。

65

void setRenderer(ListCellRenderer aRenderer)

设置绘制列表项的渲染器和从JComboBox字段中的列表中选择的项。

66

void setSelectedIndex(int anIndex)

选择索引anIndex处的项目。

67

void setSelectedItem(Object anObject)

将ComboBox显示区域中的选定项目设置为参数中的对象。

68

void setUI(ComboBoxUI ui)

设置呈现此组件的L&F对象。

69

void showPopup()

使ComboBox显示其弹出窗口。

70

void updateUI()

将UI属性重置为当前外观的值。

方法继承 (Methods Inherited)

该类继承以下类中的方法 -

  • javax.swing.JComponent
  • java.awt.Container
  • java.awt.Component
  • java.lang.Object

JComboBox示例

使用您选择的任何编辑器创建以下Java程序,例如D:/ 》 SWING 》 com 》 xnip 》 gui 》

SwingControlDemo.java

package cn.xnip.gui;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class SwingControlDemo {
   private JFrame mainFrame;
   private JLabel headerLabel;
   private JLabel statusLabel;
   private JPanel controlPanel;
   public SwingControlDemo(){
      prepareGUI();
   }
   public static void main(String[] args){
      SwingControlDemo  swingControlDemo = new SwingControlDemo();      
      swingControlDemo.showComboboxDemo();
   }
   private void prepareGUI(){
      mainFrame = new JFrame("Java Swing Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new JLabel("", JLabel.CENTER);        
      statusLabel = new JLabel("",JLabel.CENTER);    
      statusLabel.setSize(350,100);
      controlPanel = new JPanel();
      controlPanel.setLayout(new FlowLayout());
      mainFrame.add(headerLabel);
      mainFrame.add(controlPanel);
      mainFrame.add(statusLabel);
      mainFrame.setVisible(true);  
   }
   private void showComboboxDemo(){                                    
      headerLabel.setText("Control in action: JComboBox"); 
      final DefaultComboBoxModel fruitsName = new DefaultComboBoxModel();
      fruitsName.addElement("Apple");
      fruitsName.addElement("Grapes");
      fruitsName.addElement("Mango");
      fruitsName.addElement("Peer");
      final JComboBox fruitCombo = new JComboBox(fruitsName);    
      fruitCombo.setSelectedIndex(0);
      JScrollPane fruitListScrollPane = new JScrollPane(fruitCombo);    
      JButton showButton = new JButton("Show");
      showButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) { 
            String data = "";
            if (fruitCombo.getSelectedIndex() != -1) {                     
               data = "Fruits Selected: " 
                  + fruitCombo.getItemAt
                  (fruitCombo.getSelectedIndex());             
            }              
            statusLabel.setText(data);
         }
      }); 
      controlPanel.add(fruitListScrollPane);          
      controlPanel.add(showButton);    
      mainFrame.setVisible(true);             
   }
}

使用命令提示符编译程序。 转到D:/ 》 SWING并键入以下命令。

D:\SWING>javac com\xnip\gui\SwingControlDemo.java

如果没有错误发生,则表示编译成功。 使用以下命令运行该程序。

D:\SWING>java cn.xnip.gui.SwingControlDemo

验证以下输出。

Swing JComboBox