반응형
paint(), update(), repaint()
1. AWT 그래픽 개요
paint(), update(), repaint() 메소드
- paint()와 update(), repaint() 메소드는 Container 클래스의 메소드로서 그래픽을 처리하는 일을 담당한다.
- 그리기 작업에 필요한 각종 도구를 모델링한 Graphics 객체를 필요로 한다.
- Container 클래스를 상속받아 프로그램을 작성할 경우 paint() 메소드 또는 update()메소드를 오버랑딩하여 그래픽 처리를 한다.
- update() : 화면을 지우는 역활
- repaint() : update()메소드를 호출하기 위한 메소드로서 프로그램에서 호출이 가능
- paint() : 프로그램이 실행될 때 최초 한 번 호출되며 그 이후는 repaint() 또는 update() 메소드를 통해 호출됨
주요 그리기 대상 객체
- AWT 크래픽의 대상이 되는 객체는 AWT의 모든 컴포넌트이다.
- 대부분 내부에 paint(), update() 메소드를 가지고 있어서 그리기 작업이 필요할 때면 내부에서 이 메소드들이 자동으로 호출된다.
2. Paint() 메소드
Paint() 메소드
- 실제로 그리기 작업을 수행하는 메소드이다.
- 기본적인 Paint()메소드의 동작은 아무것도 하지 않는다.
- 프로그램에서 오버라이딩하여 적절한 그리기 작업을 수행한다.
3. Update() 메소드
Update() 메소드
- paint() 메수드가 호출되기 직전에 호출된다.
- 프로그램에서 repaint() 메소드를 호출하면 update() 메소드를 호출하게 되며 이어서 paint() 메소드가 호출된다.
- 기본적인 update() 메소드의 내용은 해당 컴포넌트의 배경을 지우는 역활을 한다.
4. 예제
그래픽 컨텍스트
1. 그래픽 컨텍스트 개요
Graphic Context
- 사전적 의미 : 컨텍스트란 전후관계, 문맥을 의미한다.
- 자바에서의 의미 : 그래픽 처리를 위한 선, 면, 색상 등의 그리기 도구를 의미한다.
- Graphics 클래스에 객체모델링되어있다.
Graphics 객체를 얻는 방법
- 일반적으로 컴포넌트의 getGraphics() 메소드를 이용한다.
- paint() 또는 update() 메소드의 인자로서 Graphics 객체를 사용할 수 있다.
2. 색상 클래스
색상 클래스의 기능과 생성식
- 그래픽 컨텍스트에 색상을 지정하기 위해 Color 클래스를 사용한다.
- Color 클래스 생성자 : Color(int r, int g, int b);
메소드 | 내용 |
Color getColor() | 현제 설정된 색상을 반환 |
Void setColor(Color c) | 새로운 색상을 설정 |
Color getBackground() | 컴포넌트의 배경색을 반환 |
Color getForeground() | 컴포넌트의 전경색을 반환 |
Void setBackground(Color c) | 컴포넌트의 배경색을 설정 |
Void setForeground(Color c) | 컴포넌트의 전경색을 설정 |
예제
그래픽 메소드
1. 그래픽 메소드 개요
그래픽 메소드 정의
- 선, 사각형, 타원, 원 등을 그리는 메소드의 집합을 의미한다.
- 이는 내부를 채우는 형태(fill)와 채우지 않는 형태(draw)로 구분된다.
- 좌표 구조는 오른쪽 방향과 아래 방향으로 값이 증가하는 형태이다.
2. 주요 그래픽 메소드 종류
메소드 | 내용 |
drawLine(int x1, int y1, int x2, int y2) | 선그리기 |
drawRect(int x, int y, int width, int height) | 사각형 그리기 |
fillRect(int x, int y, int width, int height) | |
drawOval(int x, int y, int width, int height) | 타원그리기 |
fillOval(int x, int y, int width, int height) | |
drawString(String str, int x, int y) | 문자열 쓰기 |
3. 예제
반응형
'Develop > Java' 카테고리의 다른 글
JAVA 애플릿 구조 및 프로그래밍 (0) | 2021.08.09 |
---|---|
JAVA 멀티스레드 제어와 메소드 (0) | 2021.08.09 |
JAVA 상위하위레벨 이벤트 (0) | 2021.08.09 |
JAVA Event (0) | 2021.08.09 |
JAVA Container & Layout (0) | 2021.08.09 |