在 jList 项目中找到任何地方?
Find anywhere in jList items?
我可以用这段代码在 jlist 中找到项目。但我想在项目中的任何地方找到。我怎样才能做到这一点。非常感谢。 (对不起我的英语)
例如:我可以找到 "New or San" 但我想找到 "York or Diago".
纽约
圣地亚哥
jTextField1.addKeyListener(new KeyAdapter() {
public void keyReleased(KeyEvent e) {
String text = "" + e.getKeyChar();
StringBuffer buffer = new StringBuffer(jTextField1.getText().substring(0, jTextField1.getText().length() - 1));
buffer.append(text);
int index = jList1.getNextMatch(buffer.toString(), 0, Position.Bias.Forward);
jList1.setSelectedIndex(index);
}
});
getNextMatch 检查给定字符串是否存在于作为第二个参数传递的起始位置。你可以遍历jlist找到索引。
jTextField1.addKeyListener(new KeyAdapter() {
public void keyReleased(KeyEvent e) {
String text = "" + e.getKeyChar();
StringBuffer buffer = new StringBuffer(jTextField1.getText().substring(0, jTextField1.getText().length() - 1));
buffer.append(text);
ListModel<String> model = jList1.getModel();
int index;
for(int i = 0; i < model.getSize(); i++) {
if(model.getElementAt(i).contains(buffer.toString())){
index = i;
break;
}
}
jList1.setSelectedIndex(index);
}
});
我相信 JList 中可用的方法只搜索以特定前缀开头的项目。
public List<Integer> getMatches(ListModel listModel, String text){
List<Integer> indices = new List<Integer>();
for(int i = 0; i < listModel.getSize(); i++){
if(listModel.getElementAt(i).contains(text)){
indices.add(i);
}
}
return indices;
}
上面的方法迭代列表模型并检查每个元素是否包含提供的文本和returns匹配项的索引。
我可以用这段代码在 jlist 中找到项目。但我想在项目中的任何地方找到。我怎样才能做到这一点。非常感谢。 (对不起我的英语)
例如:我可以找到 "New or San" 但我想找到 "York or Diago".
纽约
圣地亚哥
jTextField1.addKeyListener(new KeyAdapter() {
public void keyReleased(KeyEvent e) {
String text = "" + e.getKeyChar();
StringBuffer buffer = new StringBuffer(jTextField1.getText().substring(0, jTextField1.getText().length() - 1));
buffer.append(text);
int index = jList1.getNextMatch(buffer.toString(), 0, Position.Bias.Forward);
jList1.setSelectedIndex(index);
}
});
getNextMatch 检查给定字符串是否存在于作为第二个参数传递的起始位置。你可以遍历jlist找到索引。
jTextField1.addKeyListener(new KeyAdapter() {
public void keyReleased(KeyEvent e) {
String text = "" + e.getKeyChar();
StringBuffer buffer = new StringBuffer(jTextField1.getText().substring(0, jTextField1.getText().length() - 1));
buffer.append(text);
ListModel<String> model = jList1.getModel();
int index;
for(int i = 0; i < model.getSize(); i++) {
if(model.getElementAt(i).contains(buffer.toString())){
index = i;
break;
}
}
jList1.setSelectedIndex(index);
}
});
我相信 JList 中可用的方法只搜索以特定前缀开头的项目。
public List<Integer> getMatches(ListModel listModel, String text){
List<Integer> indices = new List<Integer>();
for(int i = 0; i < listModel.getSize(); i++){
if(listModel.getElementAt(i).contains(text)){
indices.add(i);
}
}
return indices;
}
上面的方法迭代列表模型并检查每个元素是否包含提供的文本和returns匹配项的索引。