paint(Graphics g) 메소드는 프레임의 디스플레이 이벤트에 의해 JVM으로 부터 호출되며 호출 시점은
프레임이 다시 화면에 그려질 때이다. 화면에 다시 그려져야 할 때는 프레임의 사이즈 변경(사이즈 증가만)과
프레임이 다른 프레임에 가려져 있다가 다시 다른 프레임보다 앞에 위치 할 때이다.
순서 상으로 생성자는 클래스의 인스턴스 생성시에 발생되므로 생성자가 paint()보다 먼저 호출되고 그 후에
앞에 명시된 이벤트가 발생했을 때에 paint메소드가 호출된다.
즉, paint()는 직접 호출하지 않아도 AWT쓰레드에 의해서 자동적으로 호출된다. AWT쓰레드는 GUI 어플리케이션을 실행하면 자동적으로 생성되는 데몬 쓰레드로 평소에는 대기상태에 있다가 화면이 갱신되어야할 상황이 발생되면, paint() 또는 update()를 호출해서 화면이 다시 그려지도록 한다. AWT쓰레드에 의해 자동적으로 화면이 갱신되는 상황은 아래와 같다.
1. 처음 화면에 나타날 때
2. 다른 화면에 가려져 있던 부분이 다시 화면에 나타날 때
3. 아이콘화 되어 있다가 원래 크기로 화면에 나타날 때
repaint() - AWT쓰레드에게 화면을 갱신할 것을 요청한다. AWT쓰레드는 0.1초마다 확인해서 요청이 있으면 update()를 호출한다.
update(Graphics g) - 화면을 지우고 paint(Graphics g)를 호출한다.
호출 순서: repaint() ---> update(Graphics g) ---> paint(Graphics g)
show()메소드와 setVisible(true) 메소드 사용시 paint(Graphics g) 메소드 동작
http://new.okjsp.pe.kr/seq/112318
'개발 및 관리 > Java' 카테고리의 다른 글
자바 책들 (0) | 2013.02.20 |
---|---|
배열 복사 (0) | 2013.02.20 |
AllEventHandler (0) | 2013.02.19 |
Event Listener를 컴포넌트에 추가 또는 삭제할 때 사용하는 메소드 (0) | 2013.02.18 |
이벤트 리스너를 Component에 추가/제거하는 메소드 (0) | 2013.02.18 |