![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
А ты посмотри как работает тот же ACDSee или Проводник в режиме Эскизы страниц, тоже самое. Вначале долгое и утомительное построение превьюшек, и только потом работа. Если хочешь можешь сохранять в директории свой собсвенный Thumbs.db это сделать не сложно, тогда в следующий раз открываться будет быстрее. Если хочешь работу можно ускорить работу, вначале создав список FileThumbnail без иконок (а лучше с умолчальной иконкой, для каждого типа файлов) и показать его пользователю, а в фоне подгружать превьюшки. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| ShurikA |
|
|||
![]() Зануда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1364 Регистрация: 29.10.2005 Где: Канада Репутация: 2 Всего: 3 |
В таком случае если человек гуляет по всему компу, то в какойто момент точно не хватит памяти... |
|||
|
||||
| ShurikA |
|
|||
![]() Зануда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1364 Регистрация: 29.10.2005 Где: Канада Репутация: 2 Всего: 3 |
Прекрасная идея, я на самом деле в начале хотел сделалть именно так. Но так и не понял как это сделать? Я же пользуюсь CellRenderer. А он вузывается не зависимо от меня, и как я на фоне работы к нему подбираюсь что бы подгружать превюшки? Потому как теоретический всё понятно: 1. Создать список с дефолтовыми иконами. 2. Передать этот же список потоку который в своё время, не мешая пользователю, будет эти иконы менять на превьюшки. Только при таком построении которое у меня я не имею представления как это сделать |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
1. создал список с дефолтовыми иконками и передал его модели JList, а еще лучше чтобы это выполнялось непосредсвенно в самой модели
2. запустил фоновый Tread по созданию превьюшек 3. процесс генерирует превьюшку для файла и меняет у FileThumbnail иконку, плюс оповещает список что такой-то элемент поменялся ( fireContentsChanged() ) 4. все остальное сделает JList и CellRenderer Добавлено @ 22:19 Если трудности останутся, то я попробую завтра накидать приблизительный код, который это делает. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| ShurikA |
|
|||
![]() Зануда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1364 Регистрация: 29.10.2005 Где: Канада Репутация: 2 Всего: 3 |
Я конеч попробыю, но честно тебе сказать я не совсем понял как?
Извини за тормознутость... Добавлено @ 22:26 Неужели ты хочешь сказать что нужно сделать столько потоков сколько и иконок? Если делать непосредственно в модели? |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
Приблизительно, это выглядит так:
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| ShurikA |
|
|||
![]() Зануда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1364 Регистрация: 29.10.2005 Где: Канада Репутация: 2 Всего: 3 |
Короче говоря так и есть... Столько потоков сколько фаилов...
|
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
Поток один.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| ShurikA |
|
|||
![]() Зануда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1364 Регистрация: 29.10.2005 Где: Канада Репутация: 2 Всего: 3 |
а да, стормозил.
Спасибо, буду пробовать... Добавлено @ 23:27 На сколько я понимаю, если сделать так как ты показал не надо перекапывать CellRenderer, а просто оставить его дефолтом. |
|||
|
||||
| ShurikA |
|
|||
![]() Зануда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1364 Регистрация: 29.10.2005 Где: Канада Репутация: 2 Всего: 3 |
LSD,
Сделал по твоей подсказке: Работает, доже н плохо. Но, такое ощущение что поток не автономный. То есть пока не переделываются все превьюшки прога не продолжает работать. Вот код, покопай если не лень. Присоединённый файл ( Кол-во скачиваний: 3 )
OctopusUploaderV31.zip 48,68 Kb |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
Угу, ошущение верное В твоем коде, пока еще не разобрался. Посмотрю чуть попозже. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| ShurikA |
|
|||
![]() Зануда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1364 Регистрация: 29.10.2005 Где: Канада Репутация: 2 Всего: 3 |
Только не пугайся, там много бардак и много всякого не нужного хлама..
С thread.start() работает Спасибо!!!! |
|||
|
||||
| ShurikA |
|
|||
![]() Зануда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1364 Регистрация: 29.10.2005 Где: Канада Репутация: 2 Всего: 3 |
Всё таки до сих пор есть проблемма с памятью.
Если долго работать с апплетом |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
С кодом я так и не разобрался, много классов и называются совсем неочевидно (типа: FileListModel на самом деле List, а не модель).
Я обнаружил, что если использовать Image.getScaledInstance(), то исходное изображение не освобождает память, даже после flush(). Поэтому лучше использовать AffineTransformOp. Я накидал примерчик такого JList-а. Директорию с 104 файлами, общим объемом 310Мб, переваривает и занимает около 4 мегов после этого. Присоединённый файл ( Кол-во скачиваний: 22 )
Thumbnail.zip 2,75 Kb-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| ShurikA |
|
|||
![]() Зануда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1364 Регистрация: 29.10.2005 Где: Канада Репутация: 2 Всего: 3 |
Это дело проще а С++ написать... Спасибо!!! Как тебе вообще общее впечатление от проекта? Это мой первый на Джаве. Имею в виду что надо бы изменить в моём подходе? потому как то что надо это точно... |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |