Java将来自另一个类的arraylist放入JList中

时间:2013-02-24 20:56:25

标签: java swing jlist

所以我有一个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;
公共类FilmSystem {

public FilmSystem() {

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

2 个答案:

答案 0 :(得分: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]));

答案 1 :(得分:1)

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

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

filmList = new JList<String>(films.toArray(new String[0]));