【问题标题】:SwingX identifies only listed word from array of words , and won't let other words to get chosenSwingX 仅从单词数组中识别列出的单词,并且不会让其他单词被选中
【发布时间】:2012-06-10 21:41:26
【问题描述】:

我正在尝试将自动完成添加到我当前的代码中,所以经过无数次 我决定试试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 

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

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

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

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

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

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

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

问候

【问题讨论】:

    标签: java swing autocomplete intellisense swingx


    【解决方案1】:

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

    • 不知道,你必须使用当前版本的 SwingX 1.6.3

    • 检查退格是否固定(不是 SwingX 专家),

    • 可以帮你查帖子great member of SwingX team @kleopatra

    • 或在他们的论坛上搜索相关信息

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

    org.jdesktop.swingx.autocomplete.Configurator#configureTextComponent(),注意 API 谈论 DocumentModel 代表 JTextComponents


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

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

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

    【讨论】:

    • 我已经试过你的例子,除了使用listSomeAnotherString.add(...) 输入的单词之外,代码不允许输入任何内容
    • 再次您尝试切换到someTextField.setStrict(false) ????或someComboBox.setStrict(false) ???,我不敢相信:-)
    • 好的,这行得通 :) 非常感谢,首先。但是,问题是,我可以使用这个类在我的程序中使用对象JTextField jtfBoxOfCurrentPath 来操作我上面提到的字段吗?
    • 好吧,我几乎成功解决了这个问题。问题是,代码只识别我输入的第一个单词。如果我继续输入,它将不再自动完成。有没有可能解决这个问题?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-28
    • 1970-01-01
    相关资源
    最近更新 更多