JList с боооольшим количеством элементов
От: ses_hardz http://www.hardz.com
Дата: 01.12.04 03:55
Оценка:
Созрала такая проблемка:
Нужно создать класс на базе JLst с дидамической загрузкой элементов (из некоторого источника) по частям — порциями, — по ходу скролирования. Может у кого есть готовые решения? Советы?

Предлагается вот такие заготовки пока (для визуализации задачи):

#1 Создание собственного класса Списка.
public class DinamicJList extends JList {
...
}



#2 Создание собственной модели
public class DinamicListModel SortedListModel {
 
...

}



где SortedListModel есть:
public class SortedListModel
    extends AbstractListModel {

 // Автосортирующийся контейнер
  SortedSet sortedSet = null;

 // Добавляет елемент 
 public void add(Object element) {
  if (sortedSet.add(element)) {
      fireContentsChanged(this, 0, getSize());
    }
 }

 // Возвразращает елемент
 public Object getElementAt(int index) {
    if (index > (sortedSet.size() - 1)) {
      return null;
    }
    return sortedSet.toArray()[index];
 }
Re: JList с боооольшим количеством элементов
От: Blazkowicz Россия  
Дата: 01.12.04 09:42
Оценка:
Здравствуйте, ses_hardz, Вы писали:

_>Созрала такая проблемка:

_>Нужно создать класс на базе JLst с дидамической загрузкой элементов (из некоторого источника) по частям — порциями, — по ходу скролирования. Может у кого есть готовые решения? Советы?

Куча советов в гуле:
http://java.sun.com/products/jfc/tsc/tech_topics/jlist_1/jlist.html

_>Предлагается вот такие заготовки пока (для визуализации задачи):


_>#1 Создание собственного класса Списка.

_>
_>public class DinamicJList extends JList {
_>...
_>}
_>

В этом необходимости нет. Данные зависят только от модели.


_>#2 Создание собственной модели

_>[java]
_>public class DinamicListModel extends SortedListModel {

_>...


_>}


Если размер списка заранее извесен, то тут вообще все просто. Модель сама по себе уже является динамическим источником данных и тебе нужно только подгружасьт содержимое по мере его запроса.

Если размер не извесен, то задаётся какой-нить за ранее большой размер, а потом при загрузке последнего элемента выставляем нужный размер.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.