2013-09-21 7 views
1

Я разрабатываю программное обеспечение для своего друга. Я разработал 90% моего проекта, и моя проблема заключается в том, что у меня есть таблица, которую я заполняю данными в базе данных. Я использовал пользовательскую таблицу для заполнения jtable. Он отлично заполняет данные, но проблема заключается в том, что он не содержит надлежащего заголовка столбца, а не содержит A, B, C для заголовков столбцов.Создайте собственную модель таблицы с заголовком столбца в java

вот мой пользовательский класс модели таблиц.

public class SellUpdateModel extends AbstractTableModel 
{ 

private Vector<Vector> data; 

public SellUpdateModel(String Jid) 
{ 

    data = new Vector<>(); 
    data = new JobDetailsDAO().get_ItemDescriptionAndQuantity(Jid); //Retrive data from databse and fill it to vector. 
} 

@Override 
public boolean isCellEditable(int rowIndex, int columnIndex) 
{ 
    return false; // does not allowed to edit cells 
} 

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

@Override 
public int getColumnCount() 
{ 
    return 3; 
} 

@Override 
public Object getValueAt(int rowIndex, int columnIndex) 
{ 
    return data.elementAt(rowIndex).elementAt(columnIndex); 
} 

public SellUpdateModel deleteRow(int row, Vector pData) 
{ 
    data.remove(data.elementAt(row)); // remove a record from vector 
    data.add(pData);    // add a record to vector 
    return this; 
} 
} 
+1

Почему вы используете нестандартную модель? DefaultTableModel будет делать то, что вы хотите, без какого-либо специального кода. – camickr

ответ

5

Необходимо переопределить getColumnName(int columnIndex).

public class SellUpdateModel extends AbstractTableModel { 
private final String[] tableHeaders = {"X", "Y", "Z"}; 


@Override 
public String getColumnName(int columnIndex) { 
    return tableHeaders[columnIndex]; 
} 
} 
+0

Спасибо, мистер Джерен, он отлично работает. –