Chap12 그래피컬 사용자 인터페이스(GUI)

Slides:



Advertisements
Similar presentations
3. 메소드와 변수 SCJP 자격증 프로젝트 발표자 : 최선웅. 1. 메 소 드 개 념 2. 메 소 드 양 식 3. 메 소 드 변 수 4. 메 소 드 예 제 5. 참 고 문 헌 / 자 료 목 차.
Advertisements

12 장 자바 애플릿. 2 Applet 개요 Applet 프로그램 – 웹 페이지에 포함되어 구동 된다. 웹 브라우저나 애 플릿뷰어 (appletviewer) 에서 실행되는 프로그램 – 웹 브라우저 내에 Applet 을 해석하여 실행할 수 있 도록 Applet 구동용 인터프리터가.
자바 5.0 프로그래밍.
명품 JAVA Programming 제 9 장 자바의 GUI, AWT와 Swing.
제 4 부 : 애플릿과 사용자 인터페이스 제 16 장 애플릿과 그래픽 제 17 장 이벤트 처리 제 18 장 사용자 인터페이스 : AWT 제 19 장 사용자 인터페이스 : SWING.
12. GUI – 그래픽 이야기.
명품 JAVA Essential.
명품 JAVA Programming.
Chapter04 캔버스(2) HTML5 Programming.
어서와 Java는 처음이지! 제20장 실전프로젝트 #2.
Chapter 16 : Struts 프레임워크 2. chapter 16 : Struts 프레임워크 2.
01_ 가상 함수를 사용한 다형성의 구현 02_ 오버라이딩
- 계산기 GUI 구성하기 - 조원: 박강국 오정은 이귀식 김도윤 안영진.
9장. 스윙 프로그래밍.
클래스 class, 객체 object 생성자 constructor 접근 access 제어 이벤트 event 처리.
Chap07 상속 Section 1 : 상속의 개요 Section 2 : 멤버 변수의 상속
최윤정 Java 프로그래밍 클래스 상속 최윤정
컴퓨터 프로그래밍 실습 #7 제 4 장 GUI 클래스 작성.
명품 JAVA Programming.
Part 5 사용자 인터페이스 Chapter 14 : 그래피컬 사용자 인터페이스 Chapter 15 : 이벤트 처리
Kim heesang JDBC Programming 2 Kim heesang
제 4 장 클래스 작성 Lab 4- 2.
9장 AWT(1).
Lesson 12. 사용자 인터페이스(AWT) - 1
Java의 정석 제 13 장 AWT와 애플릿 Java 정석 남궁성 강의
2. 자바 애플릿.
명품 JAVA Essential.
Power Java 제19장 배치 관리자(Layout Manager).
명품 JAVA Programming 제 12 장 그래픽.
제 4 부 제 16 장 애플릿과 그래픽 제 17 장 이벤트 처리 제 18 장 사용자 안터페이스.
어서와 Java는 처음이지! 제8장 그래픽 사용자 인터페이스.
Choi Younghwan CSE HUFS
18장 사용자 인터페이스 18.1 AWT(Abstract Window Toolkit) 18.2 컴포넌트의 이벤트 처리
19장 스윙과 이벤트 처리 Section 1 스윙 컴포넌트 Section 2 이미지 아이콘과 라벨
Chapter 12. Awt와 Swing Chapter 13. 배치 관리자 Chapter 14. 이벤트 관리자
8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용 8.3 인터페이스의 상속 8.4 인터페이스 참조
Lesson 9. 예외처리.
9장 AWT(1).
명품 JAVA Programming 제 15 장 애플릿과 멀티미디어.
Chap08 다중 스레드 8.1 스레드 개요 8.2 Thread 클래스와 스레드 생명주기 8.3 스레드 생성과 사용
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
JAVA WINDOW PROGRAMMING
자바 5.0 프로그래밍.
패키지와 접근 제어 패키지에 대하여 접근 제어에 대하여.
Power Java 제14장 배치 관리자.
Lesson 10. 애플릿과 그래픽.
그래픽 사용자 인터페이스와 사건처리.
자바 5.0 프로그래밍.
속성과 리스너 초기화 파라미터 외 파라미터에 대해 이해한다. 리스너를 생성해보고 사용에 대해 이해한다.
13. 연산자 오버로딩.
7장 인터페이스와 추상 클래스.
JAVA Canvas Swing.
JA A V W. 03.
Lesson 2. 기본 데이터형.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
JAVA WINDOW PROGRAMMING
Part 4 클래스 라이브러리 Chapter 10 : 다중 스레드 Chapter 11 : 패키지와 주요 클래스
Power Java 제11장 상속.
JA A V W. 06.
Mariadb JDBC PROGRAMMING2
CHAP 21. 전화, SMS, 주소록.
클래스 : 기능 CHAPTER 7 Section 1 생성자(Constructor)
그래픽 메소드.
05. 그래픽 빨간색 사각형 그리기 그래픽 그리기 발 표 자 : 07 정 경 오.
.Net Web Application 2007 컴퓨터공학실험(Ⅰ)
제 8장. 클래스의 활용 학기 프로그래밍언어및실습 (C++).
Power Java 제14장 배치 관리자.
29장. 템플릿과 STL 01_ 템플릿 02_ STL.
7 생성자 함수.
Presentation transcript:

Chap12 그래피컬 사용자 인터페이스(GUI) 12.1 Swing과 AWT 12.2 AWT 패키지와 주요 클래스 12.3 프레임(Frame) 12.4 배치 관리자(Layout Management) 12.5 판넬(Panel) 12.6 판넬에서의 그래픽 사용 12.7 색의 사용 12.8 글꼴의 사용

12.1 Swing과 AWT AWT 프로그램이 실제 실행되는 컴퓨터(운영체제)에서 제공되는 그래픽 컴포넌트(native peer)를 이용하여 그래픽을 나타낸다 중량(heavyweight) 컴포넌트 실행되는 시스템에 따라 다른 모양을 나타낸다 SWING 실행되는 시스템과 무관하게 대부분의 그래픽을 자바 시스템(JVM)이 처리하여 나타낸다 경량(lightweight) 컴포넌트 시스템에 상관없이 일관된 모양을 나타낸다 AWT에 비해 실행시간과 메모리가 많이 요구된다

12.1 Swing과 AWT AWT 패키지와 SWING 패키지 Applet Object Dimension Font FontMetrics Color Graphics Component Container LayoutManager Panel Window JApplet Frame Dialog JFrame JDialog JComponent 다양한 스윙 컴포넌트 AWT 패키지 SWING 패키지

12.1 Swing과 AWT SWING을 이용한 GUI 구축의 예

12.2 AWT 패키지와 주요 클래스 12.2.1 java.awt 패키지 GUI 구축을 위한 클래스들의 모임 유형구분 클래스명 컴포넌트의 배치와 관련된 클래스 BorderLayout, FlowLayout, GridLayout, GridBagLayout, GridBagConstraints, CardLayout GUI 구성과 관련된 클래스 Button, Label, Canvas, Checkbox, Choice, Scrollbar, ComponentList, Menu, TextComponent, TextArea, MenuBar, MenuItem, TextField, CheckboxGroup, CheckboxMenuItem, MenuComponent 그래픽 출력과 관련된 클래스 Color, Font, FontMetrics, Rectangle, Point, Polygon, Graphics, Image 컨테이너 클래스 Frame, Panel, Window, Container, FileDialog, Dialog 그 외의 클래스 Insets, Dimension, Toolkit, Event, MediaTracker

12.2 AWT 패키지와 주요 클래스 12.2.2 Component 클래스 GUI 구축에 필요로 되는 많은 하위 클래스들을 가지고 있다. 약 100여개의 메소드 제공 Component 클래스의 주요 메소드 메소드 이름 설명 Image createImage(int width, int height) width, height 크기의 Image 객체를 생성하여 반환 Font getFont() 현재 설정된 폰트를 폰트 객체로 반환 FontMetrics getFontMetrics(Font font) font 폰트에 관한 FontMetrics 객체를 반환 Color getForeground() 전경색(foreground)을 Color 객체로 반환 Dimension getSize() 현재 컴포넌트의 크기를 Dimension 객체로 반환 void paint(Graphics g) 현재의 컴포넌트에 Graphics 객체 g를 이용하여 그림을 그리는 메소드 void repaint() JVM에게 update() 메소드 호출을 요청한다 void setBackground(Color c) 배경색을 c로 설정 void setFont(Font f) 폰트를 f로 설정 void setForeground(Color c) 전경색을 c로 설정 public void update(Graphics g) 컴포넌트를 배경색으로 채우고 paint() 메소드를 호출한다

12.2 AWT 패키지와 주요 클래스 12.2.3 Container 클래스 컴포넌트를 담는 그릇 역할을 하는 클래스 JFrame, JPanel, Japplet, Applet 등의 하위 클래스를 가지고 있다 컨테이너는 서브(sub) 컨테이너를 가질 수 있다 일반적으로 서브 컨테이너로 JPanel 클래스가 많이 사용된다 컨테이너를 이용한 GUI 구성의 예(AWT 컴포넌트 사용)

12.2 AWT 패키지와 주요 클래스 Container 클래스의 주요 메소드 메소드 이름 메소드 설명 Component add(Component c) 컴포넌트 c를 현재의 컨테이너에 추가하고 c를 반환 Component add(String name, Component c) 컴포넌트 c를 컨테이너에 추가. name은 컴포넌트가 놓일 방향을 지시하는 문자열 객체 void remove(Component c) 컴포넌트 c를 현재의 컨테이너에서 제거 void setLayout(LayoutManager lm) lm으로 지정된 배치관리자를 현재 컨테이너의 배치관리자로 설정 void addContainerListener(ContainerListener cl) 이벤트를 받아들이기 위한 이벤트 리스너를 등록 void removeContainerListener(ContainerListener cl) 이벤트 리스너의 등록을 해제

12.3 프레임(Frame) GUI를 구축을 위한 프레임 클래스 : JFrame 클래스 JFrame 클래스의 메소드 생성자 public JFrame() public JFrame(String title) title은 프레임의 제목을 의미 JFrame 클래스의 메소드 메소드 이름 메소드 설명 public Container getContentPane() 프레임에 대한 contentPane 객체를 반환

12.3 프레임(Frame) 예제 : FrameTest1.java 예제 : FrameTest2.java

12.4 배치 관리자(Layout Manager) 자바는 컨터이너에 컴포넌트를 배치할 수 있는 다양한 방법을 배치관리자 클래스로 제공 FlowLayout, BorderLayout, GridLayout 등 다양한 배치관리자 클래스 제공 Container 클래스의 setLayout() 메소드를 사용하여 배치관리자를 설정

12.4 배치 관리자(Layout Manager) 12.4.1 FlowLayout 배치 관리자 배치관리자를 지정하지 않으면 묵시적으로 FlowLayout으로 지정된다 컴포넌트를 수평 방향으로 배치하는 관리자 생성자 FlowLayout() FlowLayout(int align) FlowLayout(int align, int hgap, int vgap) align : 정렬방식을 지정하는 상수. LEFT, CENTER, RIGHT를 사용 hgap, vgap : 컴포넌트 사이의 수직, 수평 간격을 지정하는 값으로서 픽셀단위

12.4 배치 관리자(Layout Manager) 예제 : FlowLayoutDemo.java

12.4 배치 관리자(Layout Manager) 12.4.2 BorderLayout 배치 관리자 컴포넌트를 추가할 때 방향을 지정하여 추가할 수 있는 기능을 제공. 지정할 수 있는 방향은 East, West, South, North, Center 생성자 BorderLayout() BorderLayout(int hgap, int vgap) hgap, vgap : 컴포넌트들 사이의 간격을 의미하며 픽셀단위로 지정 컴포넌트를 추가하는 add() 메소드에 방향을 지정 void add(String name, Component comp)

12.4 배치 관리자(Layout Manager) 예제 : BorderLayoutDemo.java

12.4 배치 관리자(Layout Manager) 12.4.3 GridLayout 배치 관리자 컴포넌트를 행과 열을 가진 배열 형태로 배치 생성자 GridLayout() GridLayout(int rows, int cols) GridLayout(int rows, int cols, int hgap, int vgap) rows, cols : 배치할 행과 열 hgap, vgap : 컴포넌트 사이의 간격. 픽셀 단위

12.4 배치 관리자(Layout Manager) 예제 : GridLayoutDemo.java

12.5 판넬(Panel) 그릇(container) 역할을 하는 클래스 : JPanel 클래스 생성자 JPanel() 예제 : JPanelDemo.java

12.6 판넬에서의 그래픽 사용 판넬(JPanel 객체)의 역할 다양한 컴포넌트를 배치하는 그릇역할 다양한 그래픽을 나타낼 수 있는 기능도 제공 판넬에 그래픽을 나타내기 위한 프로그램이 작성순서 ① 클래스가 JPanel 클래스로부터 상속 ② 상위 클래스인 JComponent 클래스에서 선언된 paintComponent(Graphics g) 메소드를 반드시 오바라이딩 하여야 한다. ③ paintComponent(Graphics g) 메소드 내에 그래픽 기능을 기술한다(매개 변수로 받은Graphics 객체의 메소드를 이용하여 기술)

12.6 판넬에서의 그래픽 사용 paintComponent() 메소드 : 상위 클래스인 JComponent 클래스에 선언 protected void paintComponent(Graphics g) 이 메소드는 JVM에 의해 자동으로 실행되는 메소드이다. 즉 판넬 객체가 나타날 때 마다 JVM은 이 메소드를 자동으로 호출한다. JVM은 이 메소드를 호출할 때, 해당 판넬에 그래픽을 나타낼 수 있는 Graphics 객체를 매개변수로하여 호출한다. 판넬 클래스를 이용하여 그래픽을 나타내는 전형적인 예 ......................... class DrawTest extends JPanel {  // JPanel 클래스로부터 상속   protected void paintComponent(Graphics g) {  // 메소드 오버라이딩     super.paintComponent(g);  // 상위클래스의 paintComponent() 메소드 호출      g.drawString(.........); // 다양한 그래픽 기능 사용     g.drawLine(..........);     g.drawRect(...........);   } }

12.6 판넬에서의 그래픽 사용 Graphics 클래스의 주요 메소드 메소드 이름 설명 void drawArc(int x, int y, int w, int h, int startAngle, int endAngle) startAngle과 endAngle로 지정된 각도를 가지는 원호를 그린다 void drawImage(Image img, int x, int y, imageObserver io) img로 지정된 이미지를 애플릿의 x,y좌표에 그린다 viod drawLine(int x0, int y0, int x1, int y1) x0,y0부터 x1,y1까지 라인을 그린다 void drawOval(int x, int y, int w, int h) x,y좌표에 w,h의 폭과 높이를 가진 타원을 그린다 void drawPolygon(int x[], int y[], int n) x[]와 y[] 배열의 각 점을 좌표로 하여 n개의 코너점을 가진 다각형을 그린다 void drawRect(int x, int y, int w, int h) x,y 좌표에 w,h의 폭과 높이를 가진 사각형을 그린다 void drawString(String str, int x, int y) 문자열을 x,y 좌표에 그린다

12.6 판넬에서의 그래픽 사용 Graphics 클래스의 주요 메소드-계속 메소드 이름 설명 void fillArc(int x, int y, int w, int h, int startAngle, int endAngle) 속이 찬 원호를 그린다 void fillOval(int x[], int y[], int n) 속이 찬 타원을 그린다 void fillPolygon(int x[], int y[], int n) 속이 찬 다각형을 그린다 void fillRect(int x, int y, int w, int h) 속이 찬 사각형을 그린다 Color getColor() 현재 객체의 색을 Color 객체로 반환 Font getFont() 현재 객체의 폰트를 Font 객체로 반환 FontMetrics getFontMetrics() 현재 객체의 폰트 정보를 FontMetrics 객체로 반환 void setColor(Color color) 현재 객체의 색을 color로 설정

12.6 판넬에서의 그래픽 사용 예제 : GraphicsLine.java 예제 : GraphicsRectangles.java

12.6 판넬에서의 그래픽 사용 예제 : GraphicsCircle.java

12.6 판넬에서의 그래픽 사용 Dimension 클래스 d : Dimension 객체 w,h : 애플릿의 폭과 높이 애플릿의 폭과 높이를 제공하는 클래스 생성자 Dimension(Dimension d) Dimension(int w, int h) d : Dimension 객체 w,h : 애플릿의 폭과 높이

12.6 판넬에서의 그래픽 사용 예제 : DynamicRectangle.java

12.7 색의 사용 자바는 색에 관한 기능을 가지는 java.awt.Color 클래스를 제공 그래픽 객체에 색을 설정하기 위해서는 Color 객체를 생성한 다음 setColor() 메소드를 사용하여 설정 색을 설정하는 예 .... public void paint(Graphics g) { ... Color c = Color.orange; g.setColor(c); g.fillRect(100, 10, 60, 50); }

12.7 색의 사용 Color 클래스의 생성자 Color(int red, int green, int blue) Color(float r, float g, float b) Color(int rgb) Color 클래스의 상수 black (0, 0, 0) blue (0, 0, 255) cyan (0, 255, 255) darkGray (64, 64, 64) gray (128, 128, 128) green (0, 255, 0) lightGray (192, 192, 192) magenta (255, 0, 255) orange (255, 200, 0) pink (255, 175, 175) red (255, 0, 0) white (255, 255, 255) yellow (255, 255, 0)

12.7 색의 사용 Color 클래스의 주요 메소드 메소드 이름 설명 Color brighter() Color darker() 현재 객체의 색보다 한 단계 어두운 색의 Color 객체를 반환 static Color decode(String str) throws NumberFormatException 문자열 str과 동일한 Color 객체를 반환 booleanequals(Object obj) 현재의 객체와 obj로 지정된 객체가 같은 색을 가지면 true, 아니면 false를 반환 int getRed() 현재 객체의 R(red)값을 반환 int getGreen() 현재 객체의 G(green)값을 반환 int getBlue() 현재 객체의 B(blue)값을 반환 int getRGB() 현재 객체의 RGB값을 반환

12.7 색의 사용 예제 : ColorFont.java 예제 : ColorExam.java

12.8 글꼴(Font)의 사용 애플릿에 대한 텍스트 출력을 객체로 취급 애플릿에 텍스트를 출력하기 위해서는 Graphics 클래스의 drawString() 메소드 사용 출력되는 그래픽(텍스트)에 폰트를 지정하기 위해서는 Font 객체를 생성한 다음 setFont() 메소드를 사용하여 설정 사용 예 ...... public void paint(Graphics g) { ..... Font font = new Font("Serif", Font.ITALIC, 36); g.setFont(font); g.drawString("JAVA APPLET", 100, 50); .... }

12.8 글꼴(Font)의 사용 폰트 관련 클래스 Font 클래스 : 다양한 글꼴에 관한 정보 제공 FontMetrics : 글꼴의 크기에 관한 정보 제공 Font 클래스 생성자 Font(String name, int style, int fontsize) name : 글꼴의 이름으로서 Serif, SansSerif, Monospaced가 많이 사용 style : 상수로서 BOLD, ITALIC, PlAIN이 사용 fontsize : 글꼴의 크기 FontMetrics 클래스 생성자 FontMetrics(Font font) font : 정보를 얻고자 하는 글꼴의 이름

12.8 글꼴(Font)의 사용 Font 클래스의 주요 메소드 FontMetrics 클래스의 주요 메소드 메소드 이름 설명 String getName() 글꼴의 이름을 반환 int getSize() 글꼴의 크기를 반환 int getStyle() 글꼴의 스타일을 반환 메소드 이름 설명 int charWidth(char c) 문자 c의 폭을 반환 int charWidth(int i) i 값을 문자로 변환한 다음 문자의 폭을 반환 int getAscent() acent를 반환 int getDescent() descent를 반환 int getHeight() height를 반환 int getLeading() leading을 반환 int stringWidth(String str) 문자열 str의 폭을 반환

App 12.8 글꼴(Font)의 사용 getAscent() getDescent() getHeight() FontMetrics가 제공하는 글꼴 크기에 관한 정보 App 머리선 기준선 꼬리선 텍스트 다음줄 getAscent() getDescent() getHeight() getLeading()

12.8 글꼴(Font)의 사용 예제 : SetFont.java 예제 : FontExample.java