Ленивая загрузка (разбиение на страницы) данных в DataGridView

Просто передайте ссылку на this

public class Other {

   public void doSomething(JFrame jFrame) {
      ...
   }
} 

public class MyFrame extends JFrame {

   Other other = new Other();

   public void method() {
      other.doSomething(this);
   }

}
0
задан Soul Reaver 13 July 2018 в 10:07
поделиться

1 ответ

Хорошо, кажется, я нашел способ сделать разбиение на страницы, но все еще сохраняю DataSource. Это может быть достигнуто с помощью события Scroll, которое возникает всякий раз, когда изменяется индекс первой строки (или что-то в этом роде, я не проверял, что находится внутри кода, созданного Microsoft). В обработчике этого события я могу использовать свойство FirstDisplayedScrollingRowIndex и DisplayedRowCount для проверки (вычисления) индекса последней отображаемой строки. Зная этот индекс и количество уже загруженных строк, я могу решить, когда загрузить больше данных. Необходим еще один обработчик событий - Resize. Событие Scroll не будет срабатывать при изменении размера DGV, потому что, похоже, он связан (как я писал выше) с индексом первой видимой строки, поэтому, если размер DGV увеличивается (как элемент управления), то последний отображаемый индекс строки должен быть снова проверен.

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

0
ответ дан Soul Reaver 17 August 2018 в 13:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: