📄 e766. listening for action events from a jcombobox component.txt
字号:
Action events are generated whenever the selected item changes. These events are generated even while the user is moving through items in the displayed popup menu. Unlike item events (see e765 Listening for Changes to the Selected Item in a JComboBox Component), action events are generated even if the new item is the same as the old item.
// Create component
String[] items = {"item1", "item2"};
JComboBox cb = new JComboBox(items);
cb.setEditable(true);
// Create and register listener
MyActionListener actionListener = new MyActionListener();
cb.addActionListener(actionListener);
class MyActionListener implements ActionListener {
// Retain the previously selected item in order to determine whether
// the new item is the same
Object oldItem;
// This method is called whenever the user or program changes the selected item.
// Note: The new item may be the same as the previous item.
public void actionPerformed(ActionEvent evt) {
JComboBox cb = (JComboBox)evt.getSource();
// Get the new item
Object newItem = cb.getSelectedItem();
// Determine if different from previously selected item
boolean same = newItem.equals(oldItem);
oldItem = newItem;
if ("comboBoxEdited".equals(evt.getActionCommand())) {
// User has typed in a string; only possible with an editable combobox
} else if ("comboBoxChanged".equals(evt.getActionCommand())) {
// User has selected an item; it may be the same item
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -