我有个问题。我正在开发一个管理名为Person的数据库表的元素的应用程序。
在第一个窗口中,我显示了表中的所有行JTable
。我有一个按钮,可以在桌子上插入新人。按钮打开一个新窗口,我可以在其中介绍字段。我的问题是,当我插入元素时,我不知道如何使用新寄存器更新表。
在主窗口中,我有一个名为的方法rellenaTabla
,在我创建窗口时填充表格:
public void rellenaTabla(){
ArrayList<Persona> lista = new ArrayList<Persona>();
lista = po1.listaDePersonas();
for (Persona persona: lista){
Object obj[] = {persona.getIdPersona(), persona.getNombrePersona(),
persona.getEdadPersona(), persona.getProfesionPersona(), persona.getTelefonoPersona()};
m = (DefaultTableModel)tabla.getModel();
m.addRow(obj);
}
tabla.setModel(m);
}
这在我创建窗口时有效,但如果我在表中插入新寄存器时调用此方法,JTable
则不会更改。我必须关闭主窗口并再次打开以显示更改。
任何的想法?
发布于 2018-10-19 14:37:36
在过去,我很幸运,之后立即调用invalidate()然后立即验证()。我相信它向JComponent / JTable发出信号表明它需要重新绘制自己。
tabla.invalidate();
tabla.validate()
https://stackoverflow.com/questions/-100005084
复制相似问题