我有一个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
api的SwingX
来帮助选择适当的任务。
但是,只要输入第一个字母,就会选择以该字母开头的第一个任务,并弹出JFrame
及其图表。
如何控制这个?在用户选择他想要的任务之前,我不希望发生任何事情。
如果我在JButton
附近添加JComboBox
,我如何阅读JComboBox
动作监听器中的JButton
值?
答案 0 :(得分:0)
这就是AutoCompleteDecorator的工作原理。它(预)选择您要输入的项目。 由于您添加了一个ActionListener,因此将调用此方法(当项目是预先选择时)
您可以尝试执行以下操作: