Java Swing - более эффективно рисовать на нескольких панелях или одной панели - PullRequest
0 голосов
/ 31 января 2019

Если у вас есть выбор между выполнением всего рендеринга в одном JPanel или рендерингом через несколько JPanel (с переопределением paintComponent), и один не использует какой-либо другой компонент Swing, такой как JButtons, JTextBoxes, JComboBoxes и т. Д. (Кроме JFrame, которыйпанель или панели находятся в).Если вы рисуете только с использованием drawLine, drawRectangle, fillRect и т. Д. Насколько эффективнее рисовать все на одной панели или распределять рисунок по нескольким панелям?Предположим, что сложность кода в любом случае одинакова, и важно уменьшить время задержки / улучшить время отклика.

Ответы [ 2 ]

0 голосов
/ 31 января 2019

Swing будет рисовать компонент только тогда, когда это необходимо.

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

Если логично разбить панель на подкомпонентызатем вы можете перекрашивать отдельные субкомпоненты по мере необходимости.

Например, так работает JTable.Вы можете иметь сотню строк в таблице, но если вы измените данные только в одной строке, то будет перекрашена только эта строка.

0 голосов
/ 31 января 2019

Это немного более эффективно.

Однако рассмотрите возможность использования нескольких панелей и полагайтесь на менеджеры компоновки для обработки размеров и т. Д. Это, скорее всего, упростит ваш код.Если вы используете только одну панель, вам придется самостоятельно изменять размеры.

В программировании не оптимизируйте, пока не поймете, что производительность - это проблема.Мера!

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