简体   繁体   English

在AbstractTableModel中初始化列名

[英]Initialize column names in AbstractTableModel

I want to initialize my model. 我想初始化我的模型。 Here is an extract of my main class where I create my GUI items: 这是我的主类的摘录,其中创建了GUI项目:

public class IceIHM extends JFrame{

List<String> listInit = new ArrayList<String>() { 
{ add("None"); add("None"); add("None"); add("None"); add("None");add("None"); add("None"); }};

String[] tableauObjectTitle = {"Name (OBJECT)","Extended Name","Reference", "Entity Type","Relation", "Extended Relation","PMID"};
String[] tableauSubjectTitle = {"Name (SUBJECT)","Extended Name","Reference", "Entity Type","Relation", "Extended Relation","PMID"};

List<List<String>> dataObject = new ArrayList<List<String>>(){ 
{ add(listInit); add(listInit);}};

List<List<String>> dataSubject = new ArrayList<List<String>>(){ 
{ add(listInit); add(listInit);}};

ModelTableau modelObject = new ModelTableau(dataObject,tableauObjectTitle);
ModelTableau modelSubject = new ModelTableau(dataSubject, tableauSubjectTitle);

JTable tableauObject = new JTable(modelObject);
JTable tableauSubject = new JTable(modelSubject);

Here is my class ModelTableau : 这是我的ModelTableau类:

public class ModelTableau extends AbstractTableModel{

private List<List<String>> data = new ArrayList<List<String>>();

private String[] headers;;

public ModelTableau(List<List<String>> data, String[] headers){
    super();
    this.data=data;
    this.headers=headers;
}

public int getRowCount() {
    return data.size();
}

public int getColumnCount() {
    return headers.length;
}

public Object getValueAt(int rowIndex, int columnIndex) {
    return data.get(rowIndex).get(columnIndex);
}

public void removeRow(int row) {
    data.remove(row);
    fireTableRowsDeleted(row, row);
}

public void addRow(List<String> listData) {
    data.add(listData);
    fireTableRowsInserted(data.size()-1, data.size()-1);

}

public void setColumnName(int i, String name) {
    headers[i] = name;
    fireTableStructureChanged();
}

}

Data are well initialized, but not my headers. 数据初始化良好,但我的标头却没有。 Can anyone help me to find my mistake? 谁能帮助我找到我的错误?

Override getColumnName() , as shown here , and return headers[col] . 重写getColumnName() ,如图这里 ,并返回headers[col]

@Override
public String getColumnName(int col) {
    return headers[col];
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM