gpt4 book ai didi

java - 带有组合框的 AutoCompleteDecorator

转载 作者:太空宇宙 更新时间:2023-11-04 14:37:26 25 4
gpt4 key购买 nike

我有一个 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

由于任务数量巨大,我使用了 SwingX api 的 AutoCompleteDecorator 来方便选择合适的任务。

但是,一旦我输入第一个字母,以该字母开头的第一个任务就会被选中,JFrame 会弹出其图形。

如何控制这个?在用户选择他想要的任务之前,我不希望发生任何事情。

如果我在JComboBox附近添加一个JButton,我如何读取JComboBoxJButton的值> Action 监听器?

最佳答案

这就是 AutoCompleteDecorator 的工作原理。它(预)选择您尝试输入的项目。由于您添加了一个 ActionListener,它将被调用(当项目被预选时)

您可以尝试执行以下操作:

  • 删除 Action 监听器
  • 添加按键监听器(监听器可能会对 ENTER 使用react)

关于java - 带有组合框的 AutoCompleteDecorator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25390808/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com