0

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

水平フィールドマネージャーの背景色 (GRADIENT) をフォーカスのある方に変更できました。しかし、フォーカス時にそのマネージャー内のラベルフィールドの色 (WHITE) を変更し、フォーカスを外したときに色 (BLACK) を元に戻したいです。また、isFocus() は、マネージャー フィールドとラベル フィールドの両方のペイントでは機能しません。

4

1 に答える 1

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);
           }
        };
于 2011-08-31T09:33:53.983 に答える