Boa noite a todos. Criei uma classe GenericTableModel para usar em meus formulários de pesquisa. A variável deve ser declarada em uma classe modelo (FrameConsulta), essa classe modelo é a que uso como base para criação dos formulários (FrameConsultaCliente, FrameConsultaFornecedor ... por exemplo). Só que ao declarar a variável no frame base, não posso definir o tipo, pois o mesmo será definido somente na classe filha. Exemplo, na classe FrameConsultaCliente vou dar o new assim: new GenericTableModel
public abstract class GenericTableModel<T> extends AbstractTableModel {
ArrayList<T> rows;
String[] columnNames;
public GenericTableModel(String[] columnNames) {
this.columnNames = columnNames;
}
public GenericTableModel(ArrayList<T> rows, String[] columnNames) {
this.columnNames = columnNames;
rows = new ArrayList<T>();
rows.addAll(rows);
}
public void addRows(ArrayList<T> rows) {
getRows().addAll(rows);
}
public ArrayList<T> getRows() {
if (rows == null) {
rows = new ArrayList<T>();
}
return rows;
}
public T getRow(int rowIndex) {
return getRows().get(rowIndex);
}
public void setColumnNames(String[] columnNames) {
this.columnNames = columnNames;
}
public String[] getColumnNames() {
if (columnNames == null) {
columnNames = new String[0];
}
return columnNames;
}
public int getRowCount() {
return getRows().size();
}
public int getColumnCount() {
return getColumnNames().length;
}
public abstract Object getValueAt(int rowIndex, int columnIndex);
}