【问题标题】:List items = new ArrayList() : it does not workList items = new ArrayList() :它不起作用
【发布时间】:2012-03-03 22:57:59
【问题描述】:

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

}
}

谁能给我解释一下?

【问题讨论】:

    标签: java swing list arraylist swingx


    【解决方案1】:

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

    【讨论】:

    • 谢谢解决,最安全的使用方式 java.util.List itmes=new ArrayList();没有导入...谢谢大家。
    【解决方案2】:

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

    尝试将行更改为:

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

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

    【讨论】:

      【解决方案3】:

      不,编译正常:

      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
      

      【讨论】:

        【解决方案4】:

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

        【讨论】:

        • 为什么 List 和 ArrayList 必须分开导入?我可以只导入 java.util.* 吗? tks提前! :D
        • 你可以,但如果你只想要 List 和 ArrayList,那么当你不打算使用它时,将所有其他东西导入那里没有什么意义:)
        • 实际上,如果我想将 ArrayList 向上转换为 List ,我必须单独进行导入。如果不是,它会显示“类型不匹配:无法从 ArrayList 转换为 List”,此错误会一直显示,直到我分别导入 List 和 ArrayList ... tks 为您回复!
        【解决方案5】:

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

        【讨论】:

          【解决方案6】:

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

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

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

          【讨论】:

          • s/java.lang.util/java.util/g :)
          猜你喜欢
          • 2012-04-08
          • 1970-01-01
          • 2014-07-22
          • 2017-05-08
          • 2012-09-29
          • 2013-08-22
          • 1970-01-01
          • 2013-03-27
          • 2019-03-15
          相关资源
          最近更新 更多