JComboBox
介绍 (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
验证以下输出。