Abaixo tenho uma classe abstrata e uma que herda a abstrata.
Eu sempre terei uma lista que será as linhas. E o método getRowCount() sempre será igual. Como eu poderia colocar essas coisas que sempre irão acontecer na classe abstrata? A classe dos objetos da lista sempre irá mudar. Pode ser
public class TableModelOrcamento extends TableModelPadrao {
private List<Orcamento> linhas;
public int getRowCount() {
if (linhas != null) {
return linhas.size();
} else {
return 0;
}
}
public Object getValueAt(int rowIndex, int columnIndex) {
switch (columnIndex) {
case 0: return linhas.get(rowIndex).getData();
case 1: return linhas.get(rowIndex).getValorTotal();
default: return null;
}
}
public void setLinhas(List<Orcamento> linhas) {
this.linhas = linhas;
}
public List<Orcamento> getLinhas() {
return linhas;
}
@Override
protected String[] criarColunas() {
return new String[]{"Data", "Total"};
}
}
public abstract class TableModelPadrao extends AbstractTableModel {
protected String[] colunas;
public TableModelPadrao() {
setColunas(criarColunas());
}
public int getColumnCount() {
return colunas.length;
}
public boolean isCellEditable(int row, int col) {
return false;
}
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
public String getColumnName(int col){
return colunas[col];
}
public String[] getColunas() {
return colunas;
}
public void setColunas(String[] colunas) {
this.colunas = colunas;
}
protected abstract String[] criarColunas();
}