java - Adding and deleting from JTable -
i have jtable custom model , custom celleditor , cellrenderer , want delete , add data in table.
how do this?
my model:
public class frandtabmodule extends abstracttablemodel { vector list; public frandtabmodule(vector frand_list ) { this.list = frand_list; } @override public class getcolumnclass(int columnindex) { return frand.class; } @override public int getcolumncount() { return 1; } @override public string getcolumnname(int columnindex) { return " "; } @override public int getrowcount() { return (list == null) ? 0 : list.size(); } @override public object getvalueat(int rowindex, int columnindex) { int =0 ; system.out.println(" raw"+rowindex+" clumn"+columnindex +"/n -------------------------------------------"+i++); return (list == null) ? null : list.get(rowindex); } @override public boolean iscelleditable(int columnindex, int rowindex) { return true; } @override public void firetablerowsdeleted(int firstrow, int lastrow) { this.list.remove(firstrow); this.firetabledatachanged(); } }
my celleditor , cellrenderer:
public class renderediter extends abstractcelleditor implements tablecelleditor, tablecellrenderer { //clientdef1 clientdef ; frand list; public renderediter(){ //clientdef = new clientdef1(); } /*private void updatedata(frand feed, boolean isselected, jtable table) { this.feed = feed; clientdef.setconncted(feed.iscon); clientdef.name.settext(feed.name); if (isselected) { clientdef.setbackground(table.getselectionbackground()); }else{ clientdef.setbackground(table.getselectionforeground()); } }*/ @override public component gettablecelleditorcomponent(jtable table, object value, boolean isselected, int row, int column) { frand frad = (frand)value; system.err.println("-------------------------\n f1 called\n ------------------"); //updatedata(feed, true, table); frad.def.setbackground(table.getselectionbackground()); return frad.def; } @override public object getcelleditorvalue() { return null; } @override public component gettablecellrenderercomponent(jtable table, object value, boolean isselected, boolean hasfocus, int row, int column) { frand frad = (frand)value; // updatedata(feed, isselected, table); if (isselected) { frad.def.setbackground(table.getselectionbackground()); } else{ frad.def.setbackground(color.white); } return frad.def; } }
table creation:
contact_tab = new javax.swing.jtable(); this.module = new frandtabmodule(client.frands); contact_tab.setmodel(module); contact_tab.setdefaulteditor(frand.class, new renderediter()); contact_tab.setdefaultrenderer(frand.class, new renderediter()); contact_tab.setrowheight(45); jsp_contact.add(contact_tab); jsp_contact.repaint(); jsp_contact.revalidate(); contact_tab.setcolumnselectionallowed(true);
what i've tried:
to add: client.frands.add(new frand ());
to delete: client.frands.remove( frand);
this working if select cell table want work dynamically.
don't override firetablerowsdeleted()
or related methods in abstracttablemodel
. instead, implement own methods addrow()
, removerow()
, etc. use defaulttablemodel
guide; related example examined here.
Comments
Post a Comment