Оптимизация рисования JFrame с большим количеством компонентов в Java - PullRequest
2 голосов
/ 31 декабря 2011

Итак, у меня следующая проблема. Я создаю JInternalFrame с ОЧЕНЬ БОЛЬШИМ КОЛИЧЕСТВОМ компонентов (скажем, 50 000 текстовых областей). Сначала я делаю всю логику (собираю все данные, которые отображаются в текстовых областях), и после того, как я устанавливаю видимый кадр, что заставляет программу зависать (я полагаю, она рисует все компоненты).

Как лучше всего оптимизировать картину? Я думаю, что я должен использовать отдельные потоки, чтобы программа не зависала, но каков будет лучший подход? Должен ли я сначала установить видимый фрейм, а затем выполнить вход в потоке, или я должен выполнить весь вход в систему, а затем нарисовать его в потоке (если так, как отрисовывать дочерние компоненты отдельно от родительского), или, возможно, что-то еще?

Заранее спасибо

Ответы [ 2 ]

4 голосов
/ 31 декабря 2011

Одной из проблем является разметка при вызове pack () .Помогут подходящий LayoutManager и установит (Preffered | Minimum | Maximum) Size.

Кажется, вы делаете что-то вроде таблицы внутри JScrollPane.В этом случае JTable может помочь с виртуальной моделью с текстовыми областями при наведении курсора мыши.(JTable повторно использует один и тот же компонент для разных ячеек.)

4 голосов
/ 31 декабря 2011

Компоненты Swing нельзя использовать за пределами EDT.Так что добавление тем не вариант.Очевидный вариант - не иметь столько компонентов.Пользовательский интерфейс с 50000 текстовых областей не может использоваться.Редизайн интерфейса.

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