我正在使用TableModel
扩展AbstractTableModel
的新类,但是当我尝试添加标题行时,它没有显示。这是代码:
public class StudentTableModel extends AbstractTableModel {
private ArrayList<Student> student;
private ArrayList<Group> groups;
private int tableType=2;
public String []coluNamess = {
"id","name",
"last name",
" birth date",
"phone","adress",
"class"
};
public String []coluNamesg = {
"id","title",
"level","num"
};
public String getColumnName(int column ) {
if(tableType==1) {
return this.coluNamess[column];
} else {
return this.coluNamesg[column];
}
}
public int getColumnCount() {
if(tableType==1) {
return 7;
} else {
return 4;
}
}
public int getRowCount() {
if(tableType==1) {
return student.size();
} else {
return groups.size();
}
}
public String getValueAt(int row, int colu) {
if(tableType==1) {
Student studentm=student.get(row);
switch(colu) {
case 0:
return Double.toString((double)studentm.getId());
case 1:
return studentm.getFname();
case 2:
return studentm.getLname();
case 3:
return studentm.getB_date();
case 4:
return studentm.getPhone();
case 5:
return studentm.getAdress();
case 6:
return Double.toString((double)studentm.getGroupId());
}
} else if(tableType==2) {
Group group=groups.get(row);
switch(colu) {
case 0:
return Double.toString((double)group.getId());
case 1:
return group.getTitle();
case 2:
return group.getLevel();
case 3:
return Double.toString((double)group.getTime());
}
}
return null;
}
public void setStudent(ArrayList<Student> students) {
this.student= students;
}
public void setGroup(ArrayList<Group> groups) {
this.groups= groups;
}
public void setType(int type) {
this.tableType=type;
}
}
标题未显示但显示内容。我不知道问题出在哪里!!!!
答案 0 :(得分:2)
将表添加到滚动窗格,即:new JScrollPane(table)
。有关详细信息,请参阅Adding a Table to a Container:
滚动窗格会自动将表头放在顶部 视口。列名称仍然显示在顶部 滚动表格数据时查看区域。
如果您使用的是没有滚动窗格的表格,那么您必须得到 表头组件并自行放置。
答案 1 :(得分:0)
当我在将mt面板添加到主面板时使用滚动方法时,我在表中添加了表格模型,并将该表添加到面板中并将该面板添加到主面板中;结果是我的标题没有出现;将表格添加到面板中并解决问题后,使用滚动功能解决了我的问题。