java - TableModelListener don't work -
i have problem tablemodellistener. have make sure when user changes value in cell, value stored in database.
the problem though added listener when edit contents of cell, nothing.
where wrong?
file whit table
public class pianificatore extends javax.swing.jframe { private frontcontroller ifc = new fc(); private adisystablemodel modelpazientitable; public pianificatore() { initcomponents(); aggiornatabelle(); tabellapazienti.getmodel().addtablemodellistener(new adisystablemodellistener(tabellapazienti)); } and tablemodellistener
package adisys.server.strumenti; import javax.swing.jtable; import javax.swing.event.tablemodelevent; import javax.swing.event.tablemodellistener; public class adisystablemodellistener implements tablemodellistener { jtable table; public adisystablemodellistener(jtable table) { this.table = table; } public void tablechanged(tablemodelevent e) { system.out.println("ciao"); } } this table model
public class adisystablemodel extends abstracttablemodel implements tablemodel { resultset dati; public adisystablemodel(resultset nuovidati) { dati = nuovidati; try { //trace system.out.println("- creazione modello tabella: \""+ dati.getmetadata().gettablename(1) +"\""); } catch (sqlexception e1) { e1.printstacktrace(); } } @override public int getcolumncount() { try { return dati.getmetadata().getcolumncount(); } catch (sqlexception e) { e.printstacktrace(); system.out.println("errore: calcolo del numero di colonne errato."); return 0; } } @override public int getrowcount() { try { //seleziona l'ultimo elemento dati.last(); //restituisce l'indice dell'elemento return (dati.getrow()); } catch (sqlexception e) { e.printstacktrace(); system.out.println("errore: calcolo del numero di righe errato. (metodo getrowcount() )"); return 0; } } @override public object getvalueat(int riga, int colonna) { try { //sposta il cursore alla riga desiderata (con sfasamento di 1) dati.absolute(riga+1); //estrae il valore nella colonna specificata e lo restituisce (con sfasamento di 1) return dati.getobject(colonna+1); } catch (sqlexception e) { // in caso di errore restituisce un oggetto vuoto e.printstacktrace(); //trace system.out.println("errore: valore dell'elemento della tabella non valido."); return null; } } @override public boolean iscelleditable(int rindex, int cindex) { return true; } @override public string getcolumnname(int col) { try { return dati.getmetadata().getcolumnname(col+1); } catch (sqlexception e) { // eccezione e.printstacktrace(); return "?"; } } public integer getid(int riga) { //ricerca colonna id for(int i=0; i<=getcolumncount(); i++) if(getcolumnname(i).equals("id")) return i; return null; } /** * restituisce l'indice della colonna partire dal nome della colonna ricercata * <b>n.b. l'indice della prima colonna è 0, l'ultimo è numerocolonne-1.</b> * @param nome - stringa con il nome della colonna * @return -1 se la colonna non e' stata trovata, altrimenti l'indice della colonna */ public int getcolumnindex(string nome) { (int i=0; i<getcolumncount();i++) if( getcolumnname(i)==nome) return i; return -1; } }
Comments
Post a Comment