java - why is tableModelListener code is not being excquted after use of a combo box actionListerner -


i have simple program displays tables database using jtable. have combobox list available tables , actionlistener sets model table each time changed. works desired. problem getting when table selected program never reaches code tablemodellistener therfore not updating database.

i did debugging placing popup messages if program entered blocks of code , program never enters table model listener once combo box actionlistener activated.

below bulk of code.

classes.addactionlistener(new actionlistener(){          @override         public void actionperformed(actionevent ev) {             jcombobox cb = (jcombobox)ev.getsource();             classname =(string)cb.getselecteditem();              string genquery="select * "+classname;             string query = genquery ;               //adding info databae table/             resultset rs=null;             try {                 rs = stmt.executequery(query);             } catch (sqlexception e) {                 // todo auto-generated catch block                 e.printstacktrace();             }             table.setmodel(dbutils.resultsettotablemodel(rs));           }                     }); 

//

//update database     table.getmodel().addtablemodellistener(new tablemodellistener() {          @override         public void tablechanged(tablemodelevent e) {             //catch events             joptionpane.showmessagedialog(null,"inside table listener");             int row = e.getfirstrow();               int column = e.getcolumn();               tablemodel model = (tablemodel)e.getsource();               object data = model.getvalueat(row, column);              joptionpane.showmessagedialog(null, "row: "+ row+" column: "+column+" data "+data);              string dt = (string)data;             int val=(integer) null;             if(dt.equals("true"))                 val=1;             if(dt.equals("false"))                 val=0;               object student = model.getvalueat(row, 1);             string stud = (string)student;             string colname =table.getcolumnname(column);                string edit="update "+classname+" set "+colname+" = ? studentname= ?";              try {                 conn.setautocommit(false);                 preparedstatement updateinfo = conn.preparestatement(edit);                   updateinfo.setint(1, val);                 updateinfo.setstring(2, stud);                 updateinfo.executeupdate();                 conn.commit();                 joptionpane.showmessagedialog(null, stud+" has been updated.");             } catch (sqlexception e2) {                 // todo auto-generated catch block                 e2.printstacktrace();             }          }        }); 

your action listener creates new table model, , replaces model of jtable new table model. tablemodellistener added before still listens old table model, isn't used anymore.

don't replace table model, change content instead. or replace table model, add tablemodellistener new one.


Comments

Popular posts from this blog

java - WrongTypeOfReturnValue exception thrown when unit testing using mockito -

php - Magento - Deleted Base url key -

android - How to disable Button if EditText is empty ? -