Облегченные таблицы на основе Java - PullRequest
2 голосов
/ 06 апреля 2011

Мы используем Table Library для нашего приложения.Если мы загружаем 10000x100 записей в таблицу, она занимает 3/4 памяти приложения и приложение зависает.

Кто-нибудь может предложить легкую таблицу Swing Java, которая потребляет меньше памяти и имеет такие функции, как фильтрация, сортировка и т. Д.

Ответы [ 3 ]

2 голосов
/ 06 апреля 2011

Легкая таблица Java - это JTable. Вы можете делать практически все, что вам нравится, если вы используете расширение AbstractTableModel и используете сортировщик и рендер. Так как модель предоставляет представление с данными, вам никогда не потребуется исчерпывать свою память при загрузке всей вашей информации.

Когда вы говорите, 10000x100, если 100 - это число столбцов, это, вероятно, слишком много для среднего монитора. Вам, вероятно, придется сделать там скидку или сделать горизонтальную прокрутку.

Если вы позволите модели получать данные из базы данных, вам никогда не потребуется загружать всю таблицу, поэтому, вероятно, не должно возникнуть проблем с шириной JTable 50-100 или даже больше.

Будьте осторожны: чтобы ваша JTable называлась jTable1, хорошо прокручивалась по горизонтали, установите

jTable1.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); 

Класс JTable имеет сортировщик и фильтр.

Прочтите учебник , чтобы узнать больше.

1 голос
/ 06 апреля 2011

Таблица или нет таблицы загрузка 10000X100 записей в память звучит как плохой дизайн, особенно если вы ограничены в памяти.

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

0 голосов
/ 06 апреля 2011

Наиболее вероятно, проблема связана с моделью вашего домена. Объект 10000 - это не так уж много, даже если ваш объект домена имеет 100 полей. Но если ваш граф объектов слишком глубокий и сложный, число объектов увеличивается до миллиардов. миллионов .. Поэтому я настоятельно рекомендую вам пересмотреть модель вашего домена ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...