【问题标题】:Java putting an arraylist from another class into a JListJava将另一个类的arraylist放入JList
【发布时间】:2013-02-24 20:56:25
【问题描述】:

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

【问题讨论】:

  • 查看此编辑:stackoverflow.com/posts/15056563/revisions 这是不必要的噪音。
  • 关于问题:您需要显示更多代码以便我们提供帮助。
  • 有 ArrayList 的类的名称是什么?
  • 好吧,不过我不确定你需要看到什么。我的 ArrayList 在一个名为 FilmSystem 的类中。

标签: java swing jlist


【解决方案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]));

【讨论】:

  • 对不起,重读我的问题,我意识到它有点含糊。是的,我的数组列表被称为 FilmSystem 类中的电影。我在 FilmGUI 类中创建了一个 FilmSystem 对象。我将如何措辞 getter 方法?我猜它不会像films.get() 那样简单; ?
  • 抱歉,这对我不起作用,“电影”由于某种原因仍然是红色的。我想我遗漏了一些我们没有考虑到的东西。如果你不介意的话,我可以编辑我的问题并展示两个课程的全部内容,或者从头开始告诉我你会怎么做。
  • 我刚刚注意到,您在构造函数中定义电影,这是故意的吗?您应该将电影定义为实例变量,例如 public class FilmSystem { ArrayListfilms = new ArrayList();公共 FilmSystem() {films.add("A");
  • 不,这不是故意的,感谢您指出这一点。现在什么都没有变红,但是当我编译并尝试运行它时仍然出现错误。我的 JFrame 运行时没有任何内容。我不知道为什么:/
  • 我让它工作了,我不知道它是什么,但我打开了另一个项目并迅速重新创建了一个 JList 和所需的行并且它工作了,最终我让它在我的项目中工作需要它。感谢你们给我的几行代码的帮助。
【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 2013-03-28
    • 2013-08-12
    • 2022-06-12
    • 1970-01-01
    • 2013-03-31
    • 1970-01-01
    • 2011-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多