как здесь вызывается paint()
или paintComponent()
?
paintComponent()
вызывается вашим кодом в методе paint()
.
paint()
метод вызывается средой Swing каждый раз, когда требуется обновление кадра. Вызывая метод repaint()
, вы информируете инфраструктуру Swing о том, что вашему фрейму необходимо обновить свое содержимое.
В IntelliJ IDEA этот код выглядит следующим образом:
Обратите внимание на букву O
в синем круге. Это означает, что метод paint()
переопределяет некоторый метод в родительском классе. В Java рекомендуется добавить модификатор @Override
для пометки переопределенных методов.
Ваш класс JavaApplication17
расширяет класс JFrame
, что означает, что он наследует все методы JFrame
и его предков. Класс JFrame
в свою очередь расширяет Frame
и наследует все методы Frame
и его предков. И так далее. См. Диаграмму иерархии классов:
Window
и Container
оба класса реализуют свои методы public void paint(Graphics g)
. А в аннотации Component
класс paint()
вызывается методом update()
. Вам не нужно вызывать метод paint()
самостоятельно.
Если вы хотите узнать больше и понять, как он работает, прочитайте о OOP концепциях в Java (абстракция, инкапсуляция, наследование) и полиморфизм).