2012-02-12 3 views
2

Все в заголовке, Я не понимаю, что проблема на этот раз немного отличается, я использовал один и тот же Object (List) для двух разных программ, и это не работает во второй раз, см:Список элементов = новый 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(); без импорта ... Спасибо за все. –

0

проверка Sanity: Вы импортировали как import java.util.List и import java.util.ArrayList?

+0

почему List и ArrayList приходится импортировать отдельно? могу ли я просто импортировать java.util. *? tks inadvance! : D – JasonHuang

+0

Вы можете, но если вы просто хотите, чтобы List и ArrayList не имели никакого смысла импортировать все другие вещи там, когда вы не собираетесь его использовать :) – Joe

+0

на самом деле, если я хочу, чтобы ArcastList перечислил список, у меня есть чтобы сделать импорт отдельно. если нет, то он говорит: «Несоответствие типа: невозможно преобразовать из ArrayList в List», эта ошибка сохраняется пока я не импортирую List и ArrayList отдельно ... tks за ответ! – JasonHuang

3

Это потому, что List с левой стороны является java.awt.List вместо java.util.List.

Попробуйте изменить строку:

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

Это, вероятно, происходит потому, что вы импортируете java.awt.*иjava.util.List. Если вы можете изменить способ импорта этих классов, вы можете избежать использования имен в строке типа.

0

Проверьте свой импорт, потому что java.awt.List - это не то же самое, что и java.util.List.

0

Я думаю, что путаница происходит из-за наличия двух типов List в разных пакетах, как говорится в сообщении об ошибке. Вы не даете весь код, который генерирует ошибку, но я думаю, что разумное начало в исправление было бы изменить выделенную линию:

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

и убедитесь, что вы импортировали java.util.*

+0

's/java.lang.util/java.util/g' :) –

+0

Вздох! Спасибо @RobHruska – snim2

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