java - Changing only 1 JTable column renderer from default -
hello have following situation, want set columns in jtable specific renderer (centered) , want right column have background color yellow. i've tried following code:
public class lview extends jinternalframe { private static final long serialversionuid = -4248667075312220111l; private lmodel model; private jpanel mainpanel; private jbutton btnrefresh; private jtable ltable; private defaulttablemodel ltablemodel; private string [] columnnames = {"col1", "col2", "col3", "col4", "col5"}; public lview() { super("l title", true, true, true, true); setsize(650,300); mainpanel = new jpanel(new flowlayout()); jpanel toppanel = new jpanel(); btnrefresh = new jbutton("refresh"); btnrefresh.addactionlistener(new actionlistener() { @override public void actionperformed(actionevent arg0) { try { model.refresh(); } catch (exception e) { model.logexception(e); } } }); toppanel.add(btnrefresh); ltablemodel = new defaulttablemodel() { private static final long serialversionuid = 2130745775009581358l; @override public boolean iscelleditable(int row, int col) { return false; } }; (string col : columnnames) ltablemodel.addcolumn(col); ltable = new jtable(); defaulttablecellrenderer centerrenderer = new defaulttablecellrenderer(); centerrenderer.sethorizontalalignment( swingconstants.center ); ltable.setdefaultrenderer(object.class, centerrenderer); defaulttablecellrenderer estcolumnrenderer = new defaulttablecellrenderer(); estcolumnrenderer.setbackground(java.awt.color.yellow); estcolumnrenderer.setfont(new font(null, font.bold, 12)); estcolumnrenderer.sethorizontalalignment( swingconstants.center ); ltable.setmodel(ltablemodel); ltable.getcolumnmodel().getcolumn(columnnames.length-1).setcellrenderer(estcolumnrenderer); ltable.setselectionmode(listselectionmodel.single_selection); ltable.setautoresizemode(jtable.auto_resize_all_columns); ltable.getcolumn(columnnames[0]).setpreferredwidth(225); jscrollpane scrollpane = new jscrollpane(ltable); jpanel tablepanel = new jpanel(); tablepanel.add(scrollpane); mainpanel.add(toppanel); mainpanel.add(tablepanel); add(mainpanel); } public lmodel getmodel() { return model; } public void setmodel(lmodel model) { this.model = model; } public void adddata(list<object []> datalist) throws exception { ltablemodel.getdatavector().removeallelements(); ltablemodel.firetabledatachanged(); (object [] data : datalist) { lmetablemodel.addrow(new object[] {data[0], data[1], data[2], data[3], data[4]}); } ltable.setpreferredscrollableviewportsize(ltable.getpreferredsize()); ltable.setfillsviewportheight(true); ltable.setautoresizemode(jtable.auto_resize_all_columns); ltablemodel.firetablestructurechanged(); }
}
it sets columns top "centerrenderer" last column not altered in way. missing something? -
edit: full code
Comments
Post a Comment