LabelField для изменения цвета

У меня есть вертикальный полевой менеджер, внутри него множество горизонтальных полевых менеджеров. в каждом диспетчере горизонтального поля есть одно поле растрового изображения и еще один менеджер вертикального поля (3 поля метки).

Я смог изменить цвет фона (ГРАДИЕНТ) горизонтального полевого менеджера, на котором когда-либо был фокус. Но я хочу изменить цвет (БЕЛЫЙ) полей меток в этом диспетчере в фокусе и вернуть обратно цвет (ЧЕРНЫЙ) при расфокусировке. Кроме того, isFocus () не работает с рисованием как для поля менеджера, так и для поля метки.


person BigDaddy    schedule 12.01.2011    source источник


Ответы (1)


Попробуй это

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);
           }
        };
person koti    schedule 31.08.2011