Просто передайте ссылку на this
public class Other {
public void doSomething(JFrame jFrame) {
...
}
}
public class MyFrame extends JFrame {
Other other = new Other();
public void method() {
other.doSomething(this);
}
}
Хорошо, кажется, я нашел способ сделать разбиение на страницы, но все еще сохраняю DataSource
. Это может быть достигнуто с помощью события Scroll
, которое возникает всякий раз, когда изменяется индекс первой строки (или что-то в этом роде, я не проверял, что находится внутри кода, созданного Microsoft). В обработчике этого события я могу использовать свойство FirstDisplayedScrollingRowIndex
и DisplayedRowCount
для проверки (вычисления) индекса последней отображаемой строки. Зная этот индекс и количество уже загруженных строк, я могу решить, когда загрузить больше данных. Необходим еще один обработчик событий - Resize
. Событие Scroll
не будет срабатывать при изменении размера DGV, потому что, похоже, он связан (как я писал выше) с индексом первой видимой строки, поэтому, если размер DGV увеличивается (как элемент управления), то последний отображаемый индекс строки должен быть снова проверен.
Единственный недостаток, который я нашел сейчас (это еще не реализовано, просто думая о способе решения проблемы) состоит в том, что простая прокрутка мыши вызывает это событие три раза (вероятно, это зависит от системные настройки), используя полосу прокрутки на боковой стороне, было бы намного больше, поэтому мне нужно будет найти способ «аккуратно загрузить эти данные» во время прокрутки (сэкономить количество уже запрошенных строк, загрузить данные в отдельный поток).