Paint() и repaint() в Java - программирование
Подтвердить что ты не робот

Paint() и repaint() в Java

Я провел, возможно, последние два часа, просматривая и просматривая эти методы и класс Graphics, и, может быть, я глупый, ха-ха, но я просто не понимаю их. Для чего они? Я понимаю, что они предполагают перерисовку или обновление компонентов на экране, но я никогда не понимал, почему это требуется (я новичок в этом). Например, если я перемещаю JLabel по экрану, вызов setLocation() перемещает его просто отлично. Это сценарий, в котором repaint() не требуется? В каких сценариях это полезно и почему?

Извините, если вы чувствуете, что это вопрос, который можно решить с помощью функции поиска, но по какой-то причине я его не получаю.

4b9b3361

Ответ 1

Разница между методом Paint() и Repaint()

Paint():

В этом методе содержатся инструкции по рисованию этого компонента. На самом деле, в Swing вы должны изменить paintComponent() вместо paint(), поскольку paint вызывает paintBorder(), paintComponent() и paintChildren(). Вы не должны вызывать этот метод напрямую, вместо этого вы должны вызвать repaint().

Repaint():

Этот метод нельзя переопределить. Он контролирует цикл update() → paint(). Вы должны вызвать этот метод, чтобы компонент мог перекрасить себя. Если вы сделали что-либо, чтобы изменить внешний вид компонента, но не его размер (например, изменение цвета, анимация и т.д.), Вызовите этот метод.

Ответ 2

Метод paint() поддерживает рисование через объект Graphics.

Метод repaint() используется для вызова paint() для потока рисования AWT.

Ответ 3

Не нужно переписывать, если вам не нужно отображать что-то конкретное на компоненте. "Что-то конкретное" означает все, что не предусмотрено внутренним инструментом инструментария для окон, который вы используете.