2

都在标题中,我不明白这次的问题有点不同,我对两个不同的程序使用了相同的 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");       
}   

关于错误的屏幕截图: 在此处输入图像描述

通过这里的缺点,它的工作顺利:

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

}
}

谁能给我解释一下?

4

6 回答 6

4

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

于 2012-02-12T00:27:28.067 回答
3

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

尝试将行更改为:

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

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

于 2012-02-12T00:28:00.800 回答
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
于 2012-02-12T00:31:14.107 回答
0

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

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

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

于 2012-02-12T00:30:01.533 回答
0

健全性检查:您是否同时导入了import java.util.Listimport java.util.ArrayList

于 2012-02-12T00:27:40.180 回答
0

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

于 2012-02-12T00:28:18.587 回答