[java] How does paintComponent work?