package preSimulationWindow; import java.util.ArrayList; import javax.swing.table.AbstractTableModel; @SuppressWarnings("serial") public class SpeciesTableModel extends AbstractTableModel { private String[] columnNames; private ArrayList<Object[]> data; // donnees du tableau public SpeciesTableModel() { columnNames = new String[] { "Espece", "Population", "", "", "" }; data = new ArrayList<Object[]>(); data.add(new Object[] { "", "", "", "", "" }); } @Override public int getColumnCount() { return columnNames.length; } @Override public int getRowCount() { if (data != null) return data.size(); else return 0; } @Override public Object getValueAt(int row, int col) { return data.get(row)[col]; } public String getColumnName(int idx) { return columnNames[idx]; } public String[] getColumnNames() { return columnNames; } public void setColumnNames(String[] c) { this.columnNames = c; } public Object[][] getData() { Object[][] dataArray = new Object[data.size()][5]; for (int i = 0; i < data.size(); i++) { for (int j = 0; j < 5; j++) { dataArray[i][j] = data.get(i)[j]; } } return dataArray; } public Object[] getLine(int idx) { return data.get(idx); } public void setValueAt(Object value, int row, int col) { data.get(row)[col] = value; fireTableCellUpdated(row, col); } public void addRow(int idx) { data.add(idx, new Object[] { "", "", "", "", "" }); fireTableRowsInserted(idx, idx); } public void removeRow(int idx) { data.remove(idx); fireTableRowsDeleted(idx, idx); } public boolean isCellEditable(int row, int col) { return true; } }