【问题标题】:Putting an ArrayList into a JList using ArrayList#toArray method使用 ArrayList#toArray 方法将 ArrayList 放入 JList
【发布时间】:2013-03-28 04:08:41
【问题描述】:

我在使用ArrayList 类的toArray 方法时遇到问题。我需要将ArrayListvecPersonnages 的内容放入JListlisteObjets,我想使用ArrayList#toArray 方法来完成。我设法通过将列表的值放入选项卡中,然后将此选项卡放入 JList 来使其工作。

我确实在 Google 上寻求帮助,但我发现的一切都不起作用。我的课程中确实有 toString 方法,但是,我使用 JList 的课程中​​没有 toString 方法。

这就是我声明我的课程的方式:

private JList<Personnage> listeObjets = null;
private ArrayList<Personnage> vecPersonnages = null;

下面是我尝试将我的 ArrayList 的内容添加到 JList 的代码以及我尝试过的一些东西,在 cmets 中注明:

Personnage[] tabPerso = new Personnage[vecPersonnages.size()];
for (int i = 0; i < vecPersonnages.size(); i++) {
    tabPerso[i] = vecPersonnages.get(i);
}
listeObjets.setListData(tabPerso);
//listeObjets.setListData(vecPersonnages.toArray());
//listeObjets.setListData((Personnage[]) vecPersonnages.toArray());
/*the last line gives me a ClassCastException (java.lang.Object 
  cannot be cast to personnage.Personnage)*/

【问题讨论】:

    标签: java swing list arraylist jlist


    【解决方案1】:

    使用toArray()toArray(T[] a)的重载方法;

    Personnage[] array = new Personnage[vecPersonnages.size()]; //Create a new array with the size of the ArrayList
    vecPersonnages.toArray(array); // fill the array
    listeObjets.setListData(array);
    

    【讨论】:

    • @user2249860 不客气。如果这回答了您的问题,请选中正确的标记以使该答案为正确的答案。
    猜你喜欢
    • 2015-11-10
    • 1970-01-01
    • 1970-01-01
    • 2018-03-16
    • 2021-08-12
    • 1970-01-01
    • 2013-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多