java - 具有多列的组合框 - 按键搜索

标签 java swing jcombobox

我有一个显示 2 列的 JComboBox。现在我想启用在所有列上按键搜索。示例:

Column1 | Column2
A1      | S1
A2      | B1
A3      | P1

第一列上的按键搜索与 JComboBox 的 KeySelectionManager 的默认实现配合良好。但是,我还希望能够搜索第二列,这意味着当我按“B”时,会选择第二个项目。

我查看了 KeySelectionManager 但没有发现任何有用的东西。我附上了组合框的屏幕截图来展示我的意思。

感谢您的指点。

enter image description here

最佳答案

检查 JComboBox 源代码中的 Key SelectionManager 实现

class DefaultKeySelectionManager implements KeySelectionManager, Serializable {
    public int selectionForKey(char aKey,ComboBoxModel aModel) {
....
       for ( i = ++currentSelection, c = aModel.getSize() ; i < c ; i++ ) {
            Object elem = aModel.getElementAt(i);
            if (elem != null && elem.toString() != null) {
                v = elem.toString().toLowerCase();
                if ( v.length() > 0 && v.charAt(0) == aKey )
                    return i;
            }
        }

因此,请尝试重写模型的 Element 类 toString() 方法以包含这两列。

关于java - 具有多列的组合框 - 按键搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31966430/

相关文章:

java - JDialog setLocation 被忽略

没有滚动条的java jcombobox?

java - 使用 JComboBox 设置 JLabel 的大小

java - Jackrabbit存储库的部署模型

java - 我的Android应用程序在某些设备上崩溃到java.lang.RuntimeException吗?

java - 将 JSON 发送到 Spark Streaming 时如何保留 JSON 结构

java - Gerrit 加载失败 "Starting Gerrit Code Review: FAILED"日志中没有错误

java - 如何在JTextField中添加弹出组件

java - 更改 JFrame 的默认布局不起作用?

java - 选择可编辑的 JComboBox 中的所有文本并设置光标位置