Delete a row of data in jtable:
Import java. AWT. borderlayout;
Import java. AWT. component;
Import java. AWT. container;
Import java. AWT. dimension;
Import java. AWT. event. actionevent;
Import java. AWT. event. actionlistener;
Import javax. Swing. jbutton;
Import javax. Swing. jframe;
Import javax. Swing. jlabel;
Import javax. Swing. jscrollpane;
Import javax. Swing. jtable;
Import javax. Swing. uimanager;
Import javax. Swing. Table. defaulttablemodel;
Import javax. Swing. Table. tablecellrenderer;
Public class simpletabletest extends jframe {
Private custommodel model = NULL;
Private jtable = NULL;
Private jscrollpane scrollpane = NULL;
Private jbutton deleterow = new jbutton ("deleterow ");
String [] columnnames = {"first name", "Last Name", "sport", "# Of years ",
"Vegetarian "};
Object [] [] DATA = {
{"Mary", "Campione", "snowboarding", new INTEGER (5 ),
New Boolean (false )},
{"Alison", "huml", "Rowing", new INTEGER (3), new Boolean (true )},
{"Kathy", "walrath", "knitting", new INTEGER (2 ),
New Boolean (false )},
{"Sharon", "zakhour", "Speed reading", new INTEGER (20 ),
New Boolean (true )},
{"Philip", "Milne", "pool", new INTEGER (10), new Boolean (false )}};
Class custommodel extends defaulttablemodel {
Public custommodel (object [] [] _ data, object [] _ columnnames ){
Super (_ data, _ columnnames );
}
Public void setvalueat (Object avalue, int row, int column ){
If (avalue! = NULL ){
Super. setvalueat (avalue, row, column );
Firetablecellupdated (row, column );
}
}
Public Boolean iscelleditable (INT row, int column ){
Return true;
}
Public class getcolumnclass (INT col ){
Try {
Return getvalueat (0, col). getclass ();
} Catch (nullpointerexception e ){
Return object. Class;
}
}
}
Public simpletabletest (){
Model = new custommodel (data, columnnames );
Jtable = new jtable (model );
Scrollpane = new jscrollpane (jtable );
Scrollpane. setrowheaderview (New customrowheadertable (jtable ));
Container CP = getcontentpane ();
CP. setlayout (New borderlayout ());
CP. Add (borderlayout. North, deleterow );
CP. Add (borderlayout. Center, scrollpane );
Pack ();
Setdefaclocloseoperation (exit_on_close );
Setvisible (true );
Deleterow. addactionlistener (New actionlistener (){
Public void actionreceivmed (actionevent e ){
System. Out. println (model. getrowcount ());
Model. removerow (model. getrowcount ()-1 );
// Scrollpane. updateui ();
}
});
}
// This class is used by customrowheadertable
Class customrowheaderrenderer extends jlabel implements tablecellrenderer {
Jtable reftable;
Public customrowheaderrenderer (jtable reftable ){
This. reftable = reftable;
}
Public component gettablecellrenderercomponent (jtable tablebean,
Object OBJ, Boolean isselected, Boolean hasfocus, int row,
Int col ){
(Defaulttablemodel) tablebean. GetModel (). setrowcount (reftable
. Getrowcount ());
This. setopaque (true );
Setborder (uimanager. getborder ("tableheader. cellborder "));
Sethorizontalalignment (center );
Settext (string. valueof (row + 1 ));
Return this;
}
}
// This class is used by jtabletest
Class customrowheadertable extends jtable {
Private defaulttablemodel rowheadmodel = NULL;
Public customrowheadertable (jtable _ jtable ){
Rowheadmodel = new defaulttablemodel (1, 1 );
Setmodel (rowheadmodel );
Setenabled (false );
Setautoresizemode (jtable. auto_resize_off );
Getcolumnmodel (). getcolumn (0). setpreferredwidth (40 );
Setdefaultrenderer (getcolumnclass (0), new customrowheaderrenderer (
_ Jtable ));
Setpreferredscrollableviewportsize (new dimension (getcolumnmodel ()
. Getcolumn (0). getpreferredwidth (), 0 ));
}
}
Public static void main (string [] ARGs ){
New simpletabletest ();
}
}
This article from: http://www2.matrix.org.cn/thread.shtml? Topicid = 35306 & forumid = 49