【问题标题】:Java Applet - List errorJava Applet - 列表错误
【发布时间】:2010-07-17 02:23:19
【问题描述】:

好的,所以我正在将 ArrayList 放入 (awt) 列表中,编译时出现以下错误。

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

    }**/
}

怎么了?谢谢。

【问题讨论】:

    标签: java list applet awt


    【解决方案1】:

    Java cannot find symbol in List

    这里有两个问题:

    java.awt.List 没有采用 Object[] 的构造函数:

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

    java.awt.ListgetSelectedItem() 而不是 getSelectedValue()

    您可以使用 List 的 ArrayList 如下:

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

    【讨论】:

    • 哦,我现在看到了我的错误。顺便问一下,AWT 列表是否可以检测双击?我看了看,它需要一个不适合列表的 ListModule。 :\
    • if(e.getClickCount() == 2) :-D
    【解决方案2】:

    根据API docs for java.awt.List,没有接受数组的公共构造函数(代码中的第 29 行)。您可以使用无参数构造函数并使用add() 方法将您的项目一一添加。

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

    【讨论】:

      猜你喜欢
      • 2012-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多