java - ComboBoxRenderer cannot be converted to TableCellRenderer -
i try create combo box , add in table column. use example. when try col5.setcellrenderer(cmbrender);
throws:
"comboboxrenderer cannot converted tablecellrenderer".
comboxrenderer
class comboboxrenderer extends jlabel implements listcellrenderer { private font uhohfont; public comboboxrenderer() { setopaque(true); sethorizontalalignment(center); setverticalalignment(center); } public component getlistcellrenderercomponent( jlist list, object value, int index, boolean isselected, boolean cellhasfocus) { int selectedindex = ((integer)value).intvalue(); if (isselected) { setbackground(list.getselectionbackground()); setforeground(list.getselectionforeground()); } else { setbackground(list.getbackground()); setforeground(list.getforeground()); } string[] petstrings = {"bird", "cat", "dog", "rabbit", "pig"}; string pet = petstrings[selectedindex]; setuhohtext(pet + " (no image available)", list.getfont()); return this; } protected void setuhohtext(string uhohtext, font normalfont) { if (uhohfont == null) { //lazily create font uhohfont = normalfont.derivefont(font.italic); } setfont(uhohfont); settext(uhohtext); } }
i try call this
comboboxrenderer cmbrender = new comboboxrenderer(); tablecolumn col5 = jtable1.getcolumnmodel().getcolumn(4); col5.setcellrenderer(cmbrender);// give me error here
i want create in table column value assigned in petstring. please advice.
this how textbox
textrenderer2 renderer2 = new textrenderer2(); tablecolumn col5 = jtable1.getcolumnmodel().getcolumn(4); mytablecelleditor editor = new mytablecelleditor(); col5.setcelleditor(editor); col5.setcellrenderer(renderer2); col5.setpreferredwidth(100);
textrenderer
class textrenderer2 extends jlabel implements tablecellrenderer { @override public component gettablecellrenderercomponent(jtable table, object value, boolean isselected, boolean hasfocus, int row, int column) { jpanel jp_panel = new jpanel(); jtextpane jta_text = new jtextpane(); jscrollpane jsp_scroll = null; string valstr = value.tostring(); jta_text.settext(valstr); jp_panel.setlayout(new borderlayout()); jsp_scroll = new jscrollpane(jta_text); jp_panel.add(jsp_scroll, borderlayout.center); return jp_panel; } }
change implements listcellrenderer implements tablecellrenderer
class comboboxrenderer extends jcombobox implements tablecellrenderer { public comboboxrenderer(object[] items) { super(items); } private static final long serialversionuid = 1l; @override public component gettablecellrenderercomponent(jtable table, object value, boolean isselected, boolean hasfocus, int row, int column) { if (isselected) { setforeground(table.getselectionforeground()); super.setbackground(table.getselectionbackground()); } else { setforeground(table.getforeground()); setbackground(table.getbackground()); } // select current value setselecteditem(value); return this; } }
Comments
Post a Comment