我有一个显示 2 列的 JComboBox。现在我想启用在所有列上按键搜索。示例:
Column1 | Column2
A1 | S1
A2 | B1
A3 | P1
第一列上的按键搜索与 JComboBox 的 KeySelectionManager 的默认实现配合良好。但是,我还希望能够搜索第二列,这意味着当我按“B”时,会选择第二个项目。
我查看了 KeySelectionManager 但没有发现任何有用的东西。我附上了组合框的屏幕截图来展示我的意思。
感谢您的指点。
最佳答案
检查 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/