java - 搜索 JList

标签 java swing jtextfield jlist keylistener

我正在寻找一种方法来创建链接到 jlist 的搜索框,以便当用户键入字符序列时,它将搜索并匹配到 JList 项目,然后突出显示该项目。 我创建了一个 jtextfield 并添加了一个按键监听器。 这部分代码可以正常工作,但仅限于用户键入的第一个字符。我正在尝试将其扩展到用户输入的任意数量的字符。有什么想法如何实现这一目标吗?预先感谢您

String[] feedStrings = {"aaa", "abc", "opo","oiuu"}

JList feedList = new JList(feedStrings);

feedList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
feedList.setLayoutOrientation(JList.VERTICAL);

feedList.setVisibleRowCount(4);


                JTextField searchbox = new JTextField();
        searchbox.setColumns(8);
        searchbox.setVisible(true);


        searchbox.addKeyListener(new KeyAdapter() {
                 public void keyReleased(KeyEvent e) {

                  String text = "" + e.getKeyChar();
                  StringBuffer buffer = new StringBuffer();
                  buffer.append(text);
                  String strbuf = buffer.toString();

                  int index = feedList.getNextMatch(strbuf, 0, Position.Bias.Forward);
                  System.out.println(index);
                  feedList.setSelectedIndex(index);
            }
      });

最佳答案

but only for the first character the user types. I am trying to expand this to any number of characters the user types

只需使用文档中的文本即可。这是使用 DocumentListener 而不是 KeyListener 的另一个原因。

尽管我喜欢使用 JTable 的建议。关于如何使用表的 Swing 教程甚至有一个工作示例,可以准确地向您展示如何执行此操作。您可以通过阅读 JTable API 找到本教程的链接。

关于java - 搜索 JList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21211964/

相关文章:

Java Swing : form with text fields

java - 获取值并将文本打印到文本字段

java - Spring @ConfigurationProperties 多个属性返回空

java - 无法更改背景 JFrame

java - 删除重复的项目 JComboBox

java - 将弹出菜单的选定项目添加到相同格式的文本字段中

java - 使用Seek Bar缩放android Canvas

java:将对象添加到新的ArrayList,无需参数化列表

java - 如何使用 Java 属性文件?

java - JTreeTable DnD 疯狂闪烁的下降光标