Как оформить определенный элемент списка в lwuit?

Мне нужно требование, чтобы в списке некоторые элементы списка имели другой стиль, чем другие. Как это может быть достигнуто в lwuit?

Например,

        List menu = new List();
        menu.addItem("1. Green");
        menu.addItem("2. Red");
        menu.addItem("3. Blue");

В этом списке каждый элемент должен иметь стиль представления своего цвета (т.е. зеленый должен иметь зеленый фон, а красный должен иметь красный фон). Возможно ли это в LWUIT? Как мы можем этого добиться?

Заранее спасибо.


person Ganesh    schedule 17.01.2013    source источник


Ответы (2)


Для этого варианта использования необходимо создать средство визуализации ячеек. Просто получите «DefaultListCellRenderer», например:

DefaultListCellRenderer rend = new DefaultListCellRenderer() {
     public Component getCellRendererComponent(Component list, Object model, Object value, int index, boolean isSelected) {
           Component c = super.getCellRendererComponent(...);
           c.getStyle().setBgTransparency(255);
           c.getStyle().setBgColor(theColorYouWant);
           return c;
     }
};

Затем установите этот рендерер в список. Вам, вероятно, потребуются некоторые дополнительные уточнения, так как это НАМНОГО упрощенный пример рендерера.

person Shai Almog    schedule 27.01.2013
comment
Расширил DefaultListCellRenderer, и все заработало. Большое спасибо. - person Ganesh; 28.01.2013

Это один из способов сделать это. 1. Создайте компонент для каждого элемента в списке. 2. Добавьте к нему цвет фона и текст. 3. После этого добавьте его в форму или любой другой созданный вами пользовательский компонент.

Другой способ: вы можете создать свой собственный рендерер списка. здесь приведена некоторая информация о том, как можете сделать это

person Ravi Shenoy    schedule 23.01.2013
comment
Я создал свой собственный рендерер списка, спасибо. - person Ganesh; 28.01.2013