2012-02-12 98 views
2

是全部在標題中, 這個時候我不明白這個問題有點不同,我用了兩個不同的程序同樣的Object(List)在第二次不行,請參見:List items = new ArrayList():它不起作用

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

} 
} 

任何人都可以向我解釋?

回答

4

你有java.awt.List中的進口應的java.util.List

+0

感謝解決,以最安全的方式其使用java.util.List itmes = new ArrayList();沒有進口...感謝所有。 – 2012-02-12 00:39:53

0

完整性檢查:在導入都import java.util.Listimport java.util.ArrayList

+0

爲什麼List和ArrayList需要單獨導入?我可以只導入java.util。*嗎?不好意思! :D – JasonHuang 2014-02-19 03:58:26

+0

你可以,但是如果你只是想列表和ArrayList沒有點導入所有其他的東西在那裏,當你不打算使用它:) – Joe 2014-02-19 09:16:43

+0

實際上,如果我想向ArrayList上傳列表,我有分開進口。如果沒有,它說「類型不匹配:不能從ArrayList轉換爲列表」,這個錯誤一直顯示,直到我導入列表和ArrayList單獨... tks給你回覆! – JasonHuang 2014-02-19 09:41:13

3

這是因爲左側的Listjava.awt.List而不是java.util.List

嘗試改變行:

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

這可能發生,因爲你要導入java.awt.*java.util.List。如果您可以更改如何導入這些類,則可以避免將該類型命名爲內聯。

0

檢查您的進口,因爲java.awt.Listjava.util.List不一樣。

0

我認爲混淆來自於在不同包中有兩個List類型,如錯誤消息所述。你不給所有生成錯誤的代碼,但我認爲一個合理的啓動爲解決將是改變高亮行:

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

,並確保您已導入java.util.*

+0

's/java.lang.util/java.util/g' :) – 2012-02-12 00:31:01

+0

感嘆!謝謝@RobHruska – snim2 2012-02-12 00:47:55

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