简体   繁体   English

Java Applet-列表错误

[英]Java Applet - List error

OK so I'm doing an ArrayList into a (awt) List and I'm getting the following errors when compiling. 好的,所以我正在将ArrayList放入(原始)列表中,并且在编译时遇到以下错误。

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

code: 码:

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

    }**/
}

What is wrong? 怎么了? Thanks. 谢谢。

Same as Java cannot find symbol in List Java一样无法在列表中找到符号

There are two issues at play here: 这里有两个问题在起作用:

java.awt.List does not have a constructor that takes Object[] : java.awt.List没有使用Object []的构造函数:

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

java.awt.List has getSelectedItem() not getSelectedValue() : java.awt.List具有getSelectedItem()而不是getSelectedValue()

You could your ArrayList with List as follows: 您可以将带有List的ArrayList如下所示:

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

According to the API docs for java.awt.List , there is no public constructor that accepts an array (line 29 in your code). 根据java.awt.ListAPI文档 ,没有公共构造函数接受数组(代码中的第29行)。 You can use the no argument constructor and add your items one by one using the add() method. 您可以使用no参数构造函数,并使用add()方法一一添加项。

Additionally, you have a typo in a method name on line 50: It's getSelectedItem() , not getSelectedValue() . 此外,在第50行的方法名称中有一个错字:是getSelectedItem() ,而不是getSelectedValue()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM