2014-09-12 87 views
0

我有1个窗口,其中包含学生集合和1个窗口,可以添加学生。 作为默认我已经做加1行表:无法从其他窗口将行添加到JTable中

DefaultTableModel tableModel = (DefaultTableModel) studentsTable.getModel(); 
tableModel.addRow(new Object[]{"Sir Student", "M", "[email protected]", "23-04-1921"});  

所以,当我保存在其他框架的学生,我做了以下内容:

studentsFrame overview = new studentsFrame(); 
overview.addStudent(student); 

studentnew Student()提供一些关于学生的信息。

那么我试图将学生添加到JTable,但这是行不通的。我不确定有什么问题。当我在我的构造函数中调用这个函数时确实有效。但我想动态添加它。

public void addStudent(Student student) { 
    tableModel.addRow(new Object[]{"New student", "M", "[email protected]", "19-09-1955"}); 
} 

我不知道发生了什么错误..

+1

请修改您的问题以包含展现您描述的问题的[完整示例](http://stackoverflow.com/help/mcve);这[示例](http://stackoverflow.com/a/19472190/230513)可能会引导你。 – trashgod 2014-09-12 18:37:32

+0

基于缺乏提供的代码,我猜测你有两个引用“tableModel”变量。一个被定义为一个实例变量(但没有被添加到表中),另一个被定义为一个局部变量,这就是你如何使用初始记录填充表。摆脱局部变量。 – camickr 2014-09-12 18:39:56

+0

我将它作为'studentsFrame'中的一个属性: 'private static DefaultTableModel tableModel;' – guidsen 2014-09-12 18:57:51

回答

0

我的确称为对象的新实例,因此overwrited已经取得的DefaultTableModel。 我已经删除它并做了一个静态函数。现在正在工作。