所以我有一个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");
答案 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]));