【发布时间】:2014-10-12 23:45:29
【问题描述】:
我有一个JComboBox,其中包含 200 个任务名称的列表。 JComboBox 中的初始选择为空白。
JComboBox combo = new JComboBox();
combo.setEditable(false);
combo.addItem("");
for (MyTask task : this.tasks) {
combo.addItem(task.getTaskName());
}
combo.setSelectedIndex(0);
combo.addActionListener(this);
AutoCompleteDecorator.decorate(combo);
根据选择的任务,会弹出一个新的JFrame,并根据选择绘制一个图表。
这发生在actionPerformed 方法中。
JComboBox jcmbType = (JComboBox) evt.getSource();
String selectedJob = (String) jcmbType.getSelectedItem();
// code for JFrame popup with graph here
由于任务数量巨大,我使用了AutoCompleteDecorator 的SwingX api 来方便选择合适的任务。
但是,只要我输入第一个字母,以该字母开头的第一个任务就会被选中,JFrame 会弹出其图表。
如何控制?在用户选择他想要的任务之前,我不希望发生任何事情。
如果我在JComboBox 附近添加JButton,如何在JButton 动作监听器中读取JComboBox 的值?
【问题讨论】:
-
没有人知道在 SwingX API(s) 中实现了哪些方法来初始化你的任何任务
-
如果我在 JComboBox 附近添加一个 JButton,如何在 JButton 动作监听器中读取 JComboBox 的值? == Oracle 教程如何使用 Item/ActionListeners,更好的是 Swing Action
-
使用 ListSelectionListener 添加到从 JComboBox 派生的 JList 中,如果您想监听 Key/Mouse Event,则更改直到 BasicComboBoxPopup 可见
标签: java swing autocomplete jcombobox swingx