2011-01-12 54 views
0

我有一个垂直的现场管理员,里面有很多横向的现场经理。在每个水平领域管理器中有1个位图字段和另一个垂直字段管理器(3个标签字段)。Color Change LabelField

我能够改变水平场管理员的背景颜色(GRADIENT),这个颜色曾经是焦点所在。但是我想在焦点上更改该经理内的labelfield的颜色(白色),并在未聚焦时改变颜色(黑色)。此外,isFocus()不适用于经理和标签字段的绘图。

回答

0

试试这个

LabelField rtf=new LabelField(list[i],Field.FOCUSABLE|Field.USE_ALL_WIDTH) 
     { 
     boolean _inFocus = false; 
     public void onFocus(int direction) { 
      _inFocus = true; 
      super.onFocus(direction); 
      this.invalidate(); 
     } 

     public void onUnfocus() { 
      _inFocus = false; 
      super.onUnfocus(); 
      this.invalidate(); 
     } 
     public void paint(Graphics g) 
      { 

     if (_inFocus){ 
      g.setBackgroundColor(0x6395CC); 
      g.clear(); 
      g.setColor(Color.WHITE); 
      } 
      else 
      { 
       g.setBackgroundColor(Color.WHITE); 
       g.clear(); 
       g.setColor(Color.BLACK); 
      } 
      g.clear(); 
      super.paint(g); 
      } 
     };