2011-01-12 7 views
0

私は縦型のフィールドマネージャーを持っています。その中には、多数の水平フィールドマネージャーがあります。各水平フィールドマネージャには、1つのビットマップフィールドと別の垂直フィールドマネージャ(3つのラベルフィールド)があります。Color Change LabelField

これまでフォーカスを持っていた水平フィールドマネージャの背景色(GRADIENT)を変更することができました。しかし、私はそのマネージャー内のlabelfieldsの色(白)を変更し、焦点が合っていないときには色(BLACK)を元に戻したいと思います。また、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); 
      } 
     }; 
をお試しください