2010-07-17 2 views
0

ОК, так что я перешел из JList в список, потому чтоJava не может найти символ в списке

1.) Это не перекрывает мои нарисованные изображения 2.) Это может быть фокус отключен еще отслеживать то, что выбран

Во всяком случае, здесь ошибка, я получаю, когда я пытаюсь скомпилировать:

C:\Users\Dan\Documents\DanJavaGen\inventory.java:30: cannot find symbol 
symbol : constructor List(java.lang.Object[]) 
location: class java.awt.List 
     list = new List(arr.toArray()); 
      ^
C:\Users\Dan\Documents\DanJavaGen\inventory.java:50: cannot find symbol 
symbol : method getSelectedValue() 
location: class java.awt.List 
     Object index = list.getSelectedValue(); 
         ^

код:

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

public class inventory extends JApplet implements MouseListener { 

public static String newline; 
public static 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 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) { 
     Object index = list.getSelectedValue(); 
     System.out.println("You have selected: " + index); 
    } 

    public void mouseEntered(MouseEvent e) { } 

    public void mouseExited(MouseEvent e) { } 

    public void mouseClicked(MouseEvent e) { } 




    public void paint(Graphics g) { 

    } 
} 

ответ

4

Есть две проблемы в игре здесь:

java.awt.List не имеет конструктор, который принимает Object []:

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

java.awt .List имеет getSelectedItem() не getSelectedValue():

Вы могли бы ваш ArrayList с список выглядит следующим образом:

public void mouseReleased(MouseEvent e) { 
    Object index = list.getSelectedItem(); 
    System.out.println("You have selected: " + index); 
} 
2
  • Вы импортируете как java.util.List, так и java.awt.List. Теперь компилятор смущен, о котором вы хотите. Возможна путаница.

  • java.awt.List, в отличие от javax.swing.JList, не имеет конструктора, который принимает массив в качестве аргумента.

  • Кроме того, у вас все еще есть пустой метод paint(). Это очень неправильно.

+0

Как я импортировать как AWT и UTIL список? : S – nn2

+1

Побеждает более конкретный импорт (java.awt.List). http://mindprod.com/jgloss/import.html –

+1

@Dan: У вас есть 'import java.util. *', который импортирует все в пакет 'java.util', включая' java.util.List'. Но в этом случае, как указывает Ален, «java.awt.List» будет иметь приоритет. – Jesper

Смежные вопросы