2014-09-12 86 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。 我已經刪除它並做了一個靜態函數。現在正在工作。