Список с флажком с использованием LWUIT

Я использую LWUIT для получения средства поиска для выбора в List. Теперь я хочу знать, как я могу отобразить список с CheckBoxes?

list=new List(vector);
cform.addComponent(list);
cform.addComponent(t);
cform.show();

person Jugal Inani    schedule 11.05.2010    source источник


Ответы (1)


Я не знаю, есть ли более простое решение, чем мое, но мое легко настраивается и может служить для множества целей.

List l = new List;

Vector v = new Vector();
for(int i = 0; i < 10; ++i){
   v.addElement(new CheckItem("itemtekst"));
}

l.setListCellRenderer(new CheckItemRenderer());
l.setModel(new CheckItemModel(v));

код выше заставляет его работать. Как вы понимаете, вам нужно создать новый класс и переопределить два, чтобы он заработал.

CHECKITEM: у этого класса есть строка и изображение. а также сеттеры и геттеры. у него также есть логическое значение, которое показывает, отмечен он или нет.

CHECKITEMRENDERER: имеет метку для строки и изображение контрольного элемента, расширяет контейнер и реализует ListCellRenderer

CHECKITEMMODEL: расширяет defaultlistmodel. у него есть методы для получения отмеченных элементов и их установки или снятия флажка.

резюмировать:

  • установить правильные элементы в векторе
  • установить правильный рендерер
  • установить правильную модель

и для его использования добавьте прослушиватель действий, иначе все будет напрасно.

person Demian Kasier    schedule 30.11.2010
comment
Это хороший подход, и он действительно хорошо работает для всех версий LWUIT. LWUIT 1.5 представил GenericListCellRenderer, который разработан для построителя GUI, где вы можете визуально создать средство визуализации списка флажков. См. Демонстрацию Tzone Friends из дистрибутива 1.5, когда вы добавляете нового друга, вы увидите список флажков, созданный с помощью конструктора графического интерфейса. - person Shai Almog; 09.10.2011