java - 使用 ArrayList#toArray 方法将 ArrayList 放入 JList

标签 java swing list arraylist jlist

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

我确实向 Google 寻求帮助,但我发现的所有内容都不起作用。我的类中确实有一个 toString 方法,但是,我在使用 JList 的类中没有 toString 方法。

这就是我声明我的类的方式:

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

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

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)*/

最佳答案

使用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);

关于java - 使用 ArrayList#toArray 方法将 ArrayList 放入 JList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15839081/

相关文章:

python - 在元组的python列表中找到最大值

Java 运行程序和接口(interface)

Java 'factory' 扩展对象类

java - 如何使用 JFilechooser 将图片添加到 JButton

java - Synth 的 JPanel 状态

使用数组或列表的 C# actionresult 过滤器

java - Observable 模式的替代方案?

java - 我应该在 log4j 中哪里使用 Configuration 或 LoggerConfig?

java - 使用 JTabbedPane 关闭 JInternalFrame

python - 如何将整数转为列表