首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SwingX AutoCompleteDecorator :找不到适合装饰的方法

SwingX AutoCompleteDecorator :找不到适合装饰的方法
EN

Stack Overflow用户
提问于 2012-02-07 09:30:19
回答 1查看 2.7K关注 0票数 1

我第一次尝试测试SwingX,为此,我阅读了文档:http://www.jdocs.com/swingx/1.0/org/jdesktop/swingx/autocomplete/AutoCompleteDecorator.html

我想对这样的JTextField提出一个建议:

代码语言:javascript
复制
List items = [...];

JTextField textField = [...];

AutoCompleteDecorator.decorate(textField, items); 

所以我在netbeans上创建了一个项目,这是我的代码:

代码语言:javascript
复制
package test_swingx;

import java.awt.Dimension;
import java.awt.HeadlessException;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import org.jdesktop.swingx.autocomplete.AutoCompleteDecorator;

/**
*
* @author marwen
*/
public class Test_swingx extends JFrame {

public Test_swingx(String title) throws HeadlessException {

    this.setTitle(title);
    JPanel pan=new JPanel();
    JTextField jtf=new JTextField();
    jtf.setColumns(20);
    List items  = new ArrayList();
    items.add("hello");
    items.add("marwen");
    items.add("allooo");
    AutoCompleteDecorator.decorate(jtf, items);
    pan.add(jtf);
    this.setContentPane(pan);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setVisible(true);
    this.setBounds(280, 150, 500, 200);

 }


 public static void main(String[] args) {

    Test_swingx tsx=new Test_swingx("helloo swingx");

 }
}

我得到了这个错误:

代码语言:javascript
复制
no suitable methode found for decorate....

我很好地遵循了语法,我不明白错误是从哪里来的?有什么帮助吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-07 14:55:32

您的方法修饰调用,被解析为下面的第一个方法,该方法是不正确的。第二个方法装饰预期的JList而不是list。

代码语言:javascript
复制
public static void decorate(JComboBox comboBox, ObjectToStringConverter stringConverter)
public static void decorate(JList list, JTextComponent textComponent) 

但是,如果您仍然希望使用List,则应该使用此方法,

代码语言:javascript
复制
public static void decorate(JTextComponent textComponent, List<?> items, boolean strictMatching)

我已经用这个修改了你问题中的错误部分。

代码语言:javascript
复制
import java.util.ArrayList;
import java.util.List;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.text.JTextComponent;

import org.jdesktop.swingx.autocomplete.AutoCompleteDecorator;

public class Test_swingx extends JFrame
{

    public Test_swingx(String p_title)
    {
        this.setTitle(p_title);
        JPanel pan = new JPanel();
        JTextComponent jtf = new JTextField();
        ((JTextField) jtf).setColumns(20);
        List items = new ArrayList();
        items.add("hello");
        items.add("marwen");
        items.add("allooo");
        AutoCompleteDecorator.decorate(jtf, items, false);
        pan.add(jtf);
        this.setContentPane(pan);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);
        this.setBounds(280, 150, 500, 200);     
    }

    public static void main(String[] args)
    {
        Test_swingx tsx = new Test_swingx("helloo swingx");     
        tsx.setVisible(true);
    }

}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9169859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档