List items = new ArrayList():它不起作用

时间:2012-02-12 00:25:38

标签: java swing list arraylist swingx

所有人都在标题中 我不明白这个问题有点不同,我为两个不同的程序使用了相同的Object(List)而且第二次没有用,请参阅:

private void jMenuItem23ActionPerformed(java.awt.event.ActionEvent evt) {                                            
init_creer_client();
List  items  = new ArrayList();
items.add("mawren");
items.add("blabla");
items.add("Bonjour");

CL.show(cartes,"creer_client");       
}   

有关错误的屏幕截图: enter image description here

在这里工作顺利:

 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;

 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,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");

}
}

任何人都可以向我解释一下吗?

6 个答案:

答案 0 :(得分:4)

你有一个java.awt.List导入应该是java.util.List

答案 1 :(得分:3)

这是因为左侧的Listjava.awt.List而不是java.util.List

尝试将行更改为:

java.util.List items = new ArrayList();

这可能是因为您要导入java.awt.* java.util.List。如果您可以更改导入这些类的方式,则可以避免使用内联类型命名空间。

答案 2 :(得分:1)

不,编译好:

package cruft;

import java.util.ArrayList;
import java.util.List;

/**
 * ListExample description here
 * @author Michael
 * @link
 * @since 2/11/12 7:27 PM
 */
public class ListExample {

    public static void main(String[] args) {
        List items = new ArrayList();
        for (String arg : args) {
            items.add(arg);
        }
        System.out.println(items);
    }
}

运行良好:

"C:\Program Files\Java\jdk1.7.0_02\bin\java" -Didea.launcher.port=7536 "-Didea.launcher.bin.path=C:\Program Files (x86)\JetBrains\IntelliJ IDEA 111.255\bin" -Dfile.encoding=UTF-8 -classpath . com.intellij.rt.execution.application.AppMain cruft.ListExample foo bar baz bat
[foo, bar, baz, bat]

Process finished with exit code 0

答案 3 :(得分:0)

完整性检查:您是否导入了import java.util.Listimport java.util.ArrayList

答案 4 :(得分:0)

检查您的导入,因为java.awt.Listjava.util.List不同。

答案 5 :(得分:0)

我认为混淆来自于在不同的包中有两个List类型,正如错误消息所示。您没有提供生成错误的所有代码,但我认为修复的合理开始是将突出显示的行更改为:

java.util.List items  = new ArrayList();

并确保您已导入java.util.*