11. 그래픽스와 애플릿
그래픽스 소개
•
그림은 컴퓨터에 저장되기 위해 디지털화되어야 한다.•
그림은 픽셀들(pixels)로 구성된다. 픽셀은 그림의 아주 작은 부분을 나타내는 영역이다.•
그림을 나타내는 픽셀들의 수가 많을수록 재생될 때 더 선명하게 보인다.•
그림 해상도(resolution)는 그림을 나타내기 위해 사용되는 픽셀들의 수이다.좌표 시스템
• 그림의 각 픽셀은 모니터 화면의 한 픽셀에 대응된다.
• 자바에서 한 픽셀을 언급할 때
우리는 원점이 좌측 상단에 있는
2차원 좌표시스템을 사용한다.
자바 좌표 시스템
X축
Y 축 (0, 0) 200
100 (200, 100)
색의 표현
• 흑백 그림은 픽셀당 한 비트를 사용하여 저장될 수 있다.
• 칼라 그림은 각 픽셀이 가능한 많은 색들의 하나일 수 있기 때문에 색을 나타내기 위해 더 많은 정보가 필요하다.
• 색을 나타내기 위해 가장 널리 사용되는 기법은 모든 색을 세 개의 주 색들(적색, 녹색, 청색)의 혼합으로서 나타내는 것이다.
• 색은 RGB 값으로 알려진 세 개의 숫자들에 의해 나타내진다. RGB는 Red-Green-Blue를 나타낸다. 각 숫자는 0과 255사이의 값을 가진다.
Color 클래스
•
자바에서 색을 나타내기 위해 Color 클래스의 객체를 사용한다.•
Color 클래스는 여러 개의 기 정의된 색들을 포함한다색 객체 RGB 값
흑색 Color.black 0, 0, 0 녹색 Color.green 0, 255, 0 노란색 Color.yellow 255, 255, 0
백색 Color.white 255, 255, 255
도형 그리기
• 자바 클래스 라이브러리는 그래픽 정보를 보여주고 다루게 하는 많은 클래스들을 제공한다.
• 그래픽스 클래스는 java.awt 패키지에서 정의된다.
• 그래픽스 클래스는 선, 직사각형과 타원과 같은 모양들을 그리게 하는 많은
메소드들을 포함한다.
도형 그리기
•
그래픽스 클래스의 메소드의 매개변수들은 좌표들과 크기들을 나타낸다.•
모양의 내부를 채울 수 있거나 채우지 않을 수도 있다. 채워진 모양은 내부가 현재 색으로채워진다.
•
모든 그리는 화면은 바탕색을 가진다. 바탕색을 정하는 메소드는 setBackground이다.•
모든 도형의 내부는 전경 색(foreground color
)을 가진다. 전경 색을 정하는 메소드는setColor이다.
선 그리기
X축
Y 축
10
20
150
50
drawLine (10, 20, 150, 50;
drawLine (150, 50, 10, 20);
혹은
직사각형 그리기
X축
Y 축
drawRect(50, 20, 100, 40);
50
20
100
40 150
60
타원 그리기
X축
Y 축
100
60
둘레 직사각형
30
90
100 200
drawOval(100, 30, 100, 60);
문자열 쓰기
drawString(“안녕하세요”, 20, 20);
안녕하세요
20
20 X 축
Y 축
문자열 쓰기
• 문자열의 글꼴이나 크기를 바꾸기 위해서 우리는 setFont 메소드를 이용한다.
setFont( <Font 객체> );
• Font 객체 생성:
new Font( < 글꼴 >, < 글자체 >, < 크기 >)
예: setFont(new Font(“Serif”, Font.ITALIC, 28));
drawString(“환영합니다”, 20, 40);
애플릿
•
자바 응용은 자바 해석기를 사용하여 실행될 수 있는 독립적인 프로그램이다.•
자바 애플릿은 웹 브라우저에서 실행되는 프로그램이다.•
또한 애플릿은 자바의 JDK 안에 있는 애플릿 뷰어도구를 사용하여 실행될 수 있다.•
애플릿은 main 메소드를 가지지 않는다.
•
대신에 특정 목적들을 이루는 여러 개의 특별한 메소드들이 있다.15
애플릿의 주요 메소드
•
init(): 애플릿을 초기화하고 처음으로 실행된다.
•
start(): 애플릿의 실행을 시작한다.•
stop(): 애플릿의 실행을 멈춘다.•
paint(Graphics page):• 애플릿 내에 있는 그래픽 요소들이 그려질 필요가 있을 때마다 자동적으로 호출된다.
• 이 메소드는 Graphics 클래스의 한 객체인 매개 변수를 입력으로 받는다.
• Graphics 객체는 모양들과 텍스트를 그릴 수 있는 그래픽스 콘텍트(context)를 정의한다.
애플릿
•
애플릿은 JApplet 클래스의 자식 클래스여야 한다.•
애플릿을 브라우저에서 실행하기 위해서는 대응하는 HTML 파일을 만들어야 한다.•
이 HTML 파일 안에 애플릿의 바이트코드 파일을 삽입하는 꼬리표(tag)를 추가해야 한다.예제 프로그램: 여러 도형 그리기
import javax.swing.JApplet;
import java.awt.*;
public class Simple extends JApplet { public void paint(Graphics g) {
g.setColor(Color.blue); // 파란색으로 색깔 설정 g.drawLine(10, 20, 60, 70);
// 선 그리기
g.drawRect(70, 20, 50, 50);
// 직사각형 그리기
g.drawOval(130, 20, 100, 50);// 타원 그리기
g.drawArc(240, 20, 50, 50, 0, 160);// 호 그리기
} }