2010-07-17 66 views
2

好吧,我正在做一個ArrayList到(awt)列表中,編譯時出現以下錯誤。Java小程序 - 列表錯誤

C:\Users\Dan\Documents\DanJavaGen\ArrayList_INV.java:29: cannot find symbol 
symbol : constructor List(java.lang.Object[]) 
location: class java.awt.List 
     list = new java.awt.List(arr.toArray()); 
      ^
C:\Users\Dan\Documents\DanJavaGen\ArrayList_INV.java:50: cannot find symbol 
symbol : method getSelectedValue() 
location: class java.awt.List 
     System.out.println("You have selected: " + list.getSelectedValue()); 
                ^
2 errors 

代碼:

import java.applet.Applet; 
import java.awt.*; 
import javax.swing.*; 
import java.awt.event.*; 
import java.util.ArrayList; 
import java.io.*; 
import java.util.*; 

public class ArrayList_INV extends JApplet implements MouseListener { 

public static String newline; 
public static java.awt.List list; 
int gold = 123; 

    public void init() { 



ArrayList<String> arr = new ArrayList<String>(); 
arr.add("Hatchet"); 
arr.add("Sword"); 
arr.add("Shield"); 
arr.add(gold + " Gold"); 
System.out.println("You have " + arr.size() + " items in your inventory."); 
showInventory(arr); 



     list = new java.awt.List(arr.toArray()); 

     add(list); 

     list.addMouseListener(this); 

     list.setVisible(true); 

    } 

public static void showInventory (ArrayList<String> theList) { 
for (int i = 0; i < theList.size(); i++) { 
System.out.println(theList.get(i)); 
} 
} 


    public void mousePressed(MouseEvent e) { } 

    public void mouseReleased(MouseEvent e) { 

     System.out.println("You have selected: " + list.getSelectedValue()); 
    } 

    public void mouseEntered(MouseEvent e) { } 

    public void mouseExited(MouseEvent e) { } 

    public void mouseClicked(MouseEvent e) { } 

/** 
    public void paint(Graphics g) { 

    }**/ 
} 

有什麼不對?謝謝。

回答

2

Java cannot find symbol in List

有在這裏打球兩個問題:

java.awt.List中沒有一個構造函數對象[]

list = new List(); 
for (String item : arr) { 
    list.add(item); 
} 

java.awt.List has getSelectedItem() not getSelectedValue()

你可以ArrayList中以列表如下:

public void mouseReleased(MouseEvent e) { 
    Object index = list.getSelectedItem(); 
    System.out.println("You have selected: " + index); 
} 
+0

哦,我現在看到我的錯誤。順便說一下,AWT列表會採取何種措施來檢測雙擊?我看了,它需要一個ListModule,它不能很好地處理列表。 :\ – nn2 2010-07-17 02:33:33

+0

if(e.getClickCount()== 2):-D – nn2 2010-07-17 02:34:31

2

按照API docs for java.awt.List,有一個允許的數組(代碼中的第29行)沒有公共構造函數。您可以使用無參數構造函數,並使用add()方法逐個添加項目。

此外,您在第50行的方法名稱中有一個錯字:它是getSelectedItem(),而不是getSelectedValue()