paint() и repaint() в Java
Я провел, может быть, последние два часа, просматривая и читая эти методы и класс Graphics, и, возможно, я глуп, хаха, но я просто не понимаю их. Для чего они? Я понимаю, что они должны перерисовывать или обновлять компоненты на экране, но я никогда не понимал, почему это требуется (я новичок в этом). Например, если я перемещаю JLabel по экрану, вызов setLocation() перемещает его просто отлично. Это сценарий, в котором repaint() не требуется? В каких сценариях это полезно и почему?
Извиняюсь, если вы чувствуете, что это вопрос, который можно решить с помощью функции поиска, но по какой-то причине я не получаю его.
3 ответа
Разница между методами Paint() и Repaint()
Покрасить():
Этот метод содержит инструкции для рисования этого компонента. На самом деле, в Swing вы должны изменить paintComponent() вместо paint (), так как paint вызывает paintBorder(), paintComponent() и paintChildren(). Вы не должны вызывать этот метод напрямую, вместо этого вы должны вызвать repaint ().
Перекрасить ():
Этот метод не может быть переопределен. Он управляет циклом update() -> paint(). Вы должны вызвать этот метод, чтобы заставить компонент перекрашивать себя. Если вы сделали что-то, чтобы изменить внешний вид компонента, но не его размер (например, изменение цвета, анимация и т. Д.), Вызовите этот метод.
paint()
Метод поддерживает рисование через графический объект.
repaint()
метод используется, чтобы вызвать paint()
быть вызванным потоком живописи AWT.
Нет необходимости вызывать repaint, если вам не нужно визуализировать что-то конкретное для компонента. "Что-то конкретное" означает что-то, что не предоставлено внутри инструментарием управления окнами, который вы используете.