Java 我无法在jlist中显示arraylist
因此,基本上我创建了一个列表,其中包含了从用户那里获得的大量信息,我需要显示在列表助手上创建的“Estudiante”。这是我第一次尝试的,但它告诉我setListData是用于数组的,所以我尝试了其他我发现包含using.toArray(数组)的东西,但这也不起作用。 为了澄清modelo是什么,我复制了第一个代码Java 我无法在jlist中显示arraylist,java,swing,arraylist,jframe,jlist,Java,Swing,Arraylist,Jframe,Jlist,因此,基本上我创建了一个列表,其中包含了从用户那里获得的大量信息,我需要显示在列表助手上创建的“Estudiante”。这是我第一次尝试的,但它告诉我setListData是用于数组的,所以我尝试了其他我发现包含using.toArray(数组)的东西,但这也不起作用。 为了澄清modelo是什么,我复制了第一个代码 public class VentanaEstudiante extends javax.swing.JFrame { private Sistema modelo;
public class VentanaEstudiante extends javax.swing.JFrame {
private Sistema modelo;
/**
* Creates new form VentanaEstudiante
*/
public VentanaEstudiante(Sistema unSistema) {
modelo = unSistema;
this.setSize(400, 280);
initComponents();
}
Estudiante有一个toString方法,超类也有
public String toString(){
return super.toString() + "Numero:" + this.getNumero() + "Semestre: " + this.getSemestre();
}
这里有我的列表,我只复制了listaEstudiantes方法,因为这就是我现在要问的。这个类Sistema没有任何toString方法,因为我认为这个arraylist不需要toString方法
public class Sistema {
private ArrayList<Estudiante> listaEstudiantes;
private ArrayList<Docente> listaDocentes;
private ArrayList<Equipo> listaEquipos;
public Sistema(){
listaEstudiantes = new ArrayList<>();
listaDocentes= new ArrayList<>();
listaEquipos=new ArrayList<>();
}
public void agregarEstudiante(Estudiante unEstudiante){
listaEstudiantes.add(unEstudiante);
}
public ArrayList<Estudiante> getListaEstudiantes(){
return listaEstudiantes;
}
公共类系统{
私人ArrayList listaEstudiantes;
私人ArrayList listaDocentes;
私人ArrayList listaEquipos;
公共系统(){
listaEstudiantes=新的ArrayList();
listaDocentes=新的ArrayList();
listaEquipos=newarraylist();
}
公共无效无合法性的学生(无合法性的学生){
添加(unEstudiante);
}
公共数组列表getListaEstudiantes(){
返回listaEstudiantes;
}
我需要使用ArrayList,以防您有更好的东西,我只需要使用它们
整个项目有很多显示列表,有时我甚至不得不让用户从中选择一些东西,我也不知道如何做,但我不知道我是否可以在这里问多个问题。列表也需要刷新,所有这些,但我想我可以处理。谢谢有两个变体,一个期望元素数组,另一个期望元素向量
在幕后,这两个方法创建AbstractListModel
的匿名子类的实例,并将该实例传递给JList.setModel()
您可以轻松地为任何列表实例实现类似的代码:
static <E> void setListData(JList<E> jList, List<? extends E> listData) {
jList.setModel(new AbstractListModel<E>() {
public int getSize() { return listData.size(); }
public E getElementAt(int i) { return listData.get(i); }
});
}
静态无效setListData(JList JList,ListA将非常有帮助,包括显示JList是如何声明的,例如,它是否是JList
,以及您是否直接使用任何列表模型。但不管怎样,如果所有其他操作都失败,您可以使用for循环在ArrayList中循环,将项目添加到JList的模型中。ListaEstudiantesJ是JList的名称,并且出现在我发布的代码上的e是我唯一写过的次数。“我唯一写过的次数”这是不是应该作为不发布MRE的理由,这样更容易帮助?什么更容易(对我来说)就是忽略那些不能或不愿发布MRE的人。还有很多人可以,他们和你一样需要帮助。
static <E> void setListData(JList<E> jList, List<? extends E> listData) {
jList.setModel(new AbstractListModel<E>() {
public int getSize() { return listData.size(); }
public E getElementAt(int i) { return listData.get(i); }
});
}