제2장 데이터 및 수식
목차 문자 스트링 변수와 배정 기본 데이터 타입 수식 데이터 변환 상호작용 프로그램 그래픽 애플릿 형상 그리기 © 2004 Pearson Addison-Wesley. All rights reserved
그래픽(Graphics) 소개 그래픽 트랙 그림 모니터 해상도( monitor resolution) 각 장의 마지막 부분 그래픽과 그래픽 사용자 인터페이스(User interface) 그림 그림은 그림의 한 점을 나타내는 화소(pixels)로 나누어져 있고, 각 화소에는 그 점의 색정보가 저장된다. 그림을 표현하는데 사용된 픽셀들의 수를 해상도(resolution)라 한다. 모니터 해상도( monitor resolution) 모니터에 디스플레이될 수 있는 픽셀들의 수 © 2004 Pearson Addison-Wesley. All rights reserved
좌표계(Coordinate Systems) 화소(pixel) 2차원 좌표계(two-dimensional coordinate system)를 통해 지칭될 수 있다. Java 좌표계 위쪽 좌측 모서리(top-left corner)를 원점(0,0) 112 Y X (0, 0) 40 (112, 40) © 2004 Pearson Addison-Wesley. All rights reserved
색상 표현 흑백 그림 컬러 그림 하나의 비트를 사용하여 각 픽셀을 저장 (0 = white, 1 = black) 한 픽셀은 색을 표현해야 한다. 세가지 기본 색인 Red, Greed, Blue의 혼합으로 표현 각각의 기본 색은 0에서 255사이의 숫자로 표현된다. 세가지 숫자로 표현된 컬러를 적록청 값(RGB-value)라 한다. © 2004 Pearson Addison-Wesley. All rights reserved
Color 클래스 컬러 표현 Color class의 미리 정의된 컬러들 Color class로부터 만들어지는 객체(object)로 표현된다. Color class의 미리 정의된 컬러들 객체(Object) Color.black Color.blue Color.cyan Color.orange Color.white Color.yellow RGB 값 0, 0, 0 0, 0, 255 0, 255, 255 255, 200, 0 255, 255, 255 255, 255, 0 © 2004 Pearson Addison-Wesley. All rights reserved
목차 문자 스트링 변수와 배정 기본 데이터 타입 수식 데이터 변환 상호작용 프로그램 그래픽 애플릿 형상 그리기 © 2004 Pearson Addison-Wesley. All rights reserved
애플릿(Applets) Java의 두 가지 종류의 프로그램 어플리케이션 애플릿 Java 어플리케이션(application) Java 애플릿(applet) 어플리케이션 main 메소드를 (method)를 갖고 있는 독립적인 프로그램 Java 인터프리터로 실행할 수 있는 프로그램 애플릿 웹(Web)상에서 전송되어 웹 브라우저에서 실행되는 프로그램 JDK의 appletviewer로도 실행 가능 main 메소드가 없고 특정 메소드들을 갖는다. © 2004 Pearson Addison-Wesley. All rights reserved
애플릿(Applets) 예, paint method: Graphics 객체(object) 애플릿에 의해 자동 실행됨 보통 애플릿의 내용을 그리는데 사용 paint 메쏘드는 매개변수로 Graphics 클래스의 객체를 받아들임. Graphics 객체(object) 그림을 그리는데 필요한 그래픽 문맥(graphics context) 정의 Graphics 클래스는 여러 가지 형상을 그리는데 사용하는 메소드들을 제공한다. © 2004 Pearson Addison-Wesley. All rights reserved
애플릿(Applets) 애플릿을 정의 하는 클래스 애플릿 실행 Applet 혹은 JApplet 클래스를 확장(extend)해야 한다. 상속(inheritance) 개념 (8장) 애플릿 실행 HTML 문서에서 태그(tag)를 통해 클래스 파일 참조해야 한다. 애플릿의 클래스 파일이 웹 상에서 전송되고 브라우저(browser) 내의 Java interpreter통해 실행 © 2004 Pearson Addison-Wesley. All rights reserved
Einstein.java //******************************************************************** // Einstein.java 저자: 루이스와 롭터스 // // 간단한 애플릿을 보여준다. import javax.swing.JApplet; import java.awt.*; public class Einstein extends JApplet { //----------------------------------------------------------------- // 앨버트 아인슈타인의 인용문을 어떤 형상들 가운데 그린다. public void paint (Graphics page) page.drawRect (50, 50, 40, 40); // 정사각형 page.drawRect (60, 80, 225, 30); // 직사각형 page.drawOval (75, 65, 20, 20); // 원 page.drawLine (35, 60, 100, 120); // 선분 page.drawString ("Out of clutter, find simplicity.", 110, 70); page.drawString ("-- Albert Einstein", 130, 100); } © 2004 Pearson Addison-Wesley. All rights reserved
HTML 애플릿 태그 주의: java 소스파일이 아닌 클래스 파일 사용 <html> <head> <title>The Einstein Applet</title> </head> <body> <applet code="Einstein.class" width=350 height=175> </applet> </body> </html> 주의: java 소스파일이 아닌 클래스 파일 사용 © 2004 Pearson Addison-Wesley. All rights reserved
목차 문자 스트링 변수와 배정 기본 데이터 타입 수식 데이터 변환 상호작용 프로그램 그래픽 애플릿 형상 그리기 © 2004 Pearson Addison-Wesley. All rights reserved
형상 그리기(drawing shapes) Graphics class의 메소드 사용 사각형 그리기 void drawRect (int x, int y, int width, int height) void fillRect (int x, int y, int width, int height) 매개변수는 좌표(coordinates)와 크기(sizes)를 정의한다. 타원형(oval) 경계사각형(bounding rectangle)으로 정의한다. 왼쪽 윗모서리 좌표와 타원이 들어갈 사각형의 폭과 높이로 정의 호(arc) 타원의(oval) 한 부분으로 생각할 수 있다. © 2004 Pearson Addison-Wesley. All rights reserved
Drawing a Line page.drawLine (10, 20, 150, 45); or X Y 10 150 20 45 page.drawLine (10, 20, 150, 45); page.drawLine (150, 45, 10, 20); or © 2004 Pearson Addison-Wesley. All rights reserved
Drawing a Rectangle page.drawRect (50, 20, 100, 40); 50 X 20 40 100 Y © 2004 Pearson Addison-Wesley. All rights reserved
Drawing an Oval 경계 사각형 (bounding rectangle) X Y 175 20 80 경계 사각형 (bounding rectangle) 50 page.drawOval (175, 20, 50, 80); © 2004 Pearson Addison-Wesley. All rights reserved
Drawing Shapes 배경 색상(background color) 지정 전경색상(foreground color) 지정 setBackground (Color.cyan); 전경색상(foreground color) 지정 page.setColor (Color.blue); Snowman.java (103쪽[한글:107쪽]) 참조 © 2004 Pearson Addison-Wesley. All rights reserved
Snowman.java import javax.swing.JApplet; import java.awt.*; //******************************************************************** // Snowman.java 저자: 루이스와 롭터스 // 기본적인 그리기 메쏘드들과 색상의 사용을 보여준다. import javax.swing.JApplet; import java.awt.*; public class Snowman extends JApplet { // 눈사람을 그린다. public void paint (Graphics page) final int MID = 150; final int TOP = 50; setBackground (Color.cyan); page.setColor (Color.blue); page.fillRect (0, 175, 300, 50); // 땅 page.setColor (Color.yellow); page.fillOval (-40, -40, 80, 80); // 태양 © 2004 Pearson Addison-Wesley. All rights reserved
Snowman.java(계속) page.setColor (Color.white); page.fillOval (MID-20, TOP, 40, 40); // 머리 page.fillOval (MID-35, TOP+35, 70, 50); // 위 몸통 page.fillOval (MID-50, TOP+80, 100, 60); // 아래 몸통 page.setColor (Color.black); page.fillOval (MID-10, TOP+10, 5, 5); // 왼쪽 눈 page.fillOval (MID+5, TOP+10, 5, 5); // 오른쪽 눈 page.drawArc (MID-10, TOP+20, 20, 10, 190, 160); // 웃는 모습 page.drawLine (MID-25, TOP+60, MID-50, TOP+40); // 왼팔 page.drawLine (MID+25, TOP+60, MID+55, TOP+60); // 오른팔 page.drawLine (MID-20, TOP+5, MID+20, TOP+5); // 모자 챙 page.fillRect (MID-15, TOP-20, 30, 25); // 모자 윗 부분 } © 2004 Pearson Addison-Wesley. All rights reserved
요약(Summary) 문자 스트링(character strings) 기본 데이터(primitive data) 변수의 선언과 사용(the declaration and use of variables) 수식과 연산자 우선순위(expressions and operator precedence) 데이터 변환(data conversions) 사용자 입력(accepting input from the user) Java 애플릿(Java applets) 그래픽 개요(introduction to graphics) © 2004 Pearson Addison-Wesley. All rights reserved