Grazie mille per gli aiuti!
Sono riuscito a fare quello che mi avete detto!!!
L'unica cosa che mi manca è adesso la sincronizzazione con il db.
Vorrei fare una cosa di questo genere. Ogni volta che clicco su una checkBox per abilitarla/disabilitarla si aggiunge ad una stringa (o ad un arrey di stringhe) l'id del file da settare a true o ad un altro arrey per settarla a false (controllando che non sia nell'altro arrey) e poi alla pressione del pulsante OK posto alla fine della pagina viene fatto l'update.
L'unica cosa che non so come fare è il capire che la cella è stata è modificata e come...
Riporto qui sotto il codice della mia TableModel:
codice:
package myPack;
import javax.swing.table.*;
import java.sql.ResultSet;
public class FileTableModel extends AbstractTableModel {
private String[] columnNames;
private Object[][] cells;
private Database db;
public FileTableModel(String aTableName){
int rowCount; // Il numero di record presenti nella tabella
String query; // La query creata per accedere al database
this.db = new Database("sf_data","root","ernesto");
db.connetti(); //Apre la connesione al database
query = "SELECT link_file,usato FROM " + aTableName;
try{
rowCount = db.getRecordCount(aTableName); // Recupero il numero di record nella tabella
columnNames = db.getColumnsName(aTableName); // Recupero le intestazioni delle colonne
cells = new Object[rowCount][columnNames.length]; //Creo la matrice dei dati
ResultSet rs = db.resultSetQuery(query); //eseguo la query
int counter = 0;
//carico la matrice dei dati
while(rs.next()){
for(int i=0; i<columnNames.length; i++)
cells[counter][i] = rs.getObject(i+1);
counter++;
}
}catch(Exception e){e.printStackTrace();}
}
public int getRowCount() {
return cells.length;
}
public int getColumnCount() {
return columnNames.length;
}
public Object getValueAt(int r, int c){
return cells[r][c];
}
public String getColumnName(int c){
return columnNames[c];
}
public boolean isCellEditable(int row, int column) {
return (column != 0);
}
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
public void setValueAt(Object value, int row, int col) {
cells[row][col] = value;
fireTableCellUpdated(row, col);
}
}
Grazie ancora per l'aiuto!
Ciao.
mainetz.