因此,基本上,即时消息会创建一个包含我从用户那里获得的大量信息的列表,并且需要在列表中同时显示创建的“ Estudiante”。所以这是我第一次尝试过,但是它告诉我setListData是用于数组的,所以我尝试了其他发现包括使用.toArray(array)的东西,但是它也没有起作用。 只是为了弄清楚我复制了第一个代码是什么模型
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();
}
private void BotonCrearEstudianteActionPerformed(java.awt.event.ActionEvent evt) {
Estudiante unEst=new Estudiante(NombreEstudiante.getText(), Integer.parseInt(CedulaEstudiante.getText()),MailEstudiante.getText(), Integer.parseInt(NumeroEstudiante.getText()), Integer.parseInt(SemestreEstudiante.getText()));
modelo.agregarEstudiante(unEst);
ListaEstudiantesJ.setListData((modelo.getListaEstudiantes()).toArray());
Estudiante有一个toString方法,超类也有。
public String toString(){
return super.toString() + "Numero:" + this.getNumero() + "Semestre: " + this.getSemestre();
}
这里有我的列表,我只复制了listaEstudiantes方法,因为这是我现在要询问的方法。 Sistema此类没有任何toString方法,因为我一直认为此arraylist不需要一个。
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,以防万一您可能会更好地工作,我只需要使用它们 整个项目有很多显示列表的内容,有时我什至不得不让用户从列表中选择内容,我也不知道该怎么做,但是我不知道我是否可以在这里问多个问题。该列表也将需要刷新,所有这些都可以,但是我想我可以解决。谢谢
答案 0 :(得分:0)
JList.setListData()
有两个变体,一个期望元素数组,另一个期望元素向量。
这两种方法在后台创建了AbstractListModel
匿名子类的实例,并将该实例传递给JList.setModel()
。
您可以轻松地为任何List
实例实现类似的代码:
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); }
});
}