Java не может найти символ в списке - PullRequest
1 голос
/ 17 июля 2010

ОК, поэтому я переключился с JList на List, потому что

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) {

    }
}

Ответы [ 2 ]

5 голосов
/ 17 июля 2010

Здесь есть две проблемы:

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

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

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

Вы можете создать свой ArrayList с помощью List следующим образом:

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

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

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

...