java - Background colour of combo box cell editor -


i have been trying find solution past few days , driving me crazy. have table in set selection colour yellow. set background of cell editor component yellow colour remains same when cell being edited. overriding prepareeditor method such:

 @override  public component prepareeditor(tablecelleditor editor, int row, int col) {       component c = super.prepareeditor(editor, row, col);       c.setbackground(color.yellow);       c.setfont(myfont);       return c;  } 

this working fine columns except column in assign combo box cell editor. once start editing cell in column background becomes white. background colour in popup menu yellow background colour in selected value box remains white. tried adding focus listener combo box able change background of popup items , not background of selected item. tried adding focus listener combo box such:

 mycombobox.addfocuslistener(new focuslistener() {//code here}); 

and editor component such:

mycombobox.geteditor().geteditorcomponent().addfocuslistener(new focuslistener() {//code    here}); 

and none of these worked. can please point out im doing wrong? thanks.

you need override cell renderer. use in ui manager , change paintcomponent method liking.

public class mycomboboxui extends metalcomboboxui {      public mycomboboxui() {      }      public static componentui createui(jcomponent c) {          return new mycomboboxui();     }      @override     public void installui(jcomponent c) {          listcellrenderer rend = new listcellrenderer() {              public component getlistcellrenderercomponent(jlist list, object value, int index, boolean isselected, boolean cellhasfocus) {                  final jlabel renderer = new jlabel(value.tostring()) {                      protected void paintcomponent(java.awt.graphics g) {                          uidefaults uid = uimanager.getdefaults();                         graphics2d g2d = (graphics2d)g;                         dimension d = this.getsize();                         g2d.setpaint(new gradientpaint(0, 0, color.red, 0, d.height, color.orange, true));                         g2d.fillrect(0, 0, d.width, d.height);                         super.paintcomponent(g);                     }                 };                 renderer.setopaque(false);                 return renderer;             }         };         super.installui(c);         ((jcombobox)c).setrenderer(rend);     } } 

Comments

Popular posts from this blog

java - Intellij Synchronizing output directories .. -

git - Initial Commit: "fatal: could not create leading directories of ..." -