Я пробовал учебники по этому вопросу, но я до сих пор не совсем понимаю. В основном мой вопрос: какой метод лучше и почему? Должен ли я использовать paint или paintComponent?
Пожалуйста, постарайтесь сохранить ответ простым, спасибо.
Ответ 1
Цитата из документации метода paint()
Этот метод фактически делегирует работу живописи трем защищенным методам: paintComponent, paintBorder и paintChildren. ... Подкласс, который просто хочет специализировать метод рисования делегата (внешний вид), должен просто переопределить paintComponent.
Похоже, что метод paint() на самом деле рисует компонент, включая границу и детей. Если вы хотите настроить внешний вид компонента, исключая границу и дочерние элементы, вы используете paintComponent().
Вообще говоря, при рисовании в Swing рекомендуется переопределить paintComponent.
Существует несколько причин, по которым на нижнем слое написано paintComponent, что означает, что вы случайно не уничтожите какие-либо компоненты, которые были отобраны во время процесса рисования - это очень часто происходит для людей, которые отправляют сюда.
Есть несколько раз, когда вам может потребоваться переопределить paint, но я всегда предлагаю вам сначала попробовать работать с paintComponent.