0

我正在尝试将自动完成添加到我当前的代码中,所以经过无数次我决定尝试SwingX

代码可以编译,可以工作,但是我仍然有一些“小”问题。

这是我的代码:

public class GuiHandler extends javax.swing.JFrame {

private javax.swing.JTextField jtfBoxOfCurrentPath;


// more irrelevant code 

       private void afterXMLfileWasUploaded() { 

       String[] tab = {"abc", "def", "ghjk", "lmnop", "qrst", "rstuv", "wxyz"};

        JList list = new JList(tab); //data has type Object[]

        // jtfBoxOfCurrentPath.setToolTipText("");  // I removed this line , this is when I don't want to use auto-completion 

        AutoCompleteDecorator.decorate(list, jtfBoxOfCurrentPath, ObjectToStringConverter.DEFAULT_IMPLEMENTATION);

        jtfBoxOfCurrentPath.addActionListener(new java.awt.event.ActionListener() 
        {
            public void actionPerformed(java.awt.event.ActionEvent evt) 
            {
                boxOfCurrentPathActionPerformed(evt);
            }

        });

// and more code 

这是我的程序的一般视图:XML 搜索引擎 。正如方法名称所提到的afterXMLfileWasUploaded,在我点击open XML file按钮后,文件被上传并解析到程序中(没问题)。

但是当我尝试在框中写一些东西时Current path,然后:

  • 我只能从tab上面的数组中写单词

  • 我不能写以未列出的字符开头的任何其他单词或字符

    “abc”、“def”、“ghjk”、“lmnop”、“qrst”、“rstuv”、“wxyz”

  • 我实际上无法擦除使用tab上面的数组编写的任何单词。

那怎么了?任何帮助将不胜感激

问候

4

1 回答 1

2

我只能从上面的 tab 数组中写单词

我不能写以未列出的字符开头的任何其他单词或字符

org.jdesktop.swingx.autocomplete.Configurator#configureTextComponent(),注意API正在谈论DocumentModelfor JTextComponents


  • 我最喜欢的解决方法是(没有提到的问题和潜在的错误) AutoComplete JComboBox / JTextField(Java5 和更高版本),

  • 在那里你可以简单地设置 AutoComplete JComboBox/JTextField#setStrict(boolean flag)

  • BackSpace,Focus,存储最后一个插入符号没有问题

于 2012-06-06T20:34:55.840 回答