0

所以我有一个 GUI 类和一个包含其他所有内容的类。我在另一个类中有一个 ArrayList,我想将 GUI 中的 Jlist 的内容填充到 arraylist

到目前为止我有这个:

filmList = new JList(films.toArray());
getContentPane().add(filmList);
filmList.setBounds(27, 21, 638, 165);   

它不仅仅喜欢films.toArray(),因为它在另一个类中。我错过了什么?

这是我目前的 FilmSystem 课程。

 import java.util.ArrayList;

公共类电影系统{

public FilmSystem() {

    ArrayList<String> films = new ArrayList<String>();
    films.add("A");
4

2 回答 2

1

从这个问题不清楚,但如果“电影”是不同类中 ArrayList 的名称,那么您需要创建该类的对象,然后调用它的 getter 以获取电影,然后在其上使用 toArray。如下所示:

FilmSystem filmObj=new FilmSystem();
filmList = new JList(filmObj.getterMethod.toArray(new String[0]));

其中 getterMethod 应该是您在类中定义的 getter 方法的名称。如果你还没有定义 getter 方法,那么你可以直接在对象上调用 Arraylist。

如果未定义 getter,则使用以下内容:

 FilmSystem filmObj=new FilmSystem();
 filmList = new JList(filmObj.films.toArray(new String[0]));
于 2013-02-24T21:06:27.840 回答
1

数组具有显式类型,独立于其元素的类型。在构造 a 时JList<String>,您必须传递一个类型为 String[] 而不是 Object[] 的数组。零参数toArray()方法总是返回一个类型为 Object[] 的数组,即使该数组的元素可能都属于某个特定的类,例如 String。

要获取特定类型的数组,请将所需类型的数组传递给toArray方法:

filmList = new JList<String>(films.toArray(new String[0]));
于 2013-02-24T21:33:10.460 回答