0

我正在为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;
    }
}

标题未出现,但显示内容。不知道问题出在哪里!!!!

4

2 回答 2

2

将表格添加到滚动窗格,即:new JScrollPane(table)。有关更多详细信息,请参阅向容器添加表

滚动窗格会自动将表头放置在视口的顶部。滚动表格数据时,列名在查看区域的顶部仍然可见。

如果您使用的是没有滚动窗格的表格,那么您必须获取表格标题组件并自己放置。

于 2014-07-02T18:45:51.237 回答
0

i added a table model to my table and added that table to a panel and added that panel to my main panel when i used scroll method when i was adding mt panel to main panel;the result was my header did not appeared ;my problem fixed when i used scroll when i added table to panel and my problem solved.

于 2018-12-05T05:45:39.930 回答