1 / 36

Part 04 사용자 인터페이스와 애플릿

Part 04 사용자 인터페이스와 애플릿. Chapter 16 그래피컬 사용자 인터페이스 (GUI) Chapter 17 이벤트 처리 Chapter 18 스윙 (SWING) Chapter 19 애플릿 (Applet). Chap16 그래피컬 사용자 인터페이스 (GUI). Section 1 : Swing 과 AWT Section 2 : AWT 패키지와 주요 클래스 Section 3 : 프레임 (Frame) Section 4 : 배치 관리자 (Layout Management)

Download Presentation

Part 04 사용자 인터페이스와 애플릿

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Part 04 사용자 인터페이스와 애플릿 Chapter 16 그래피컬 사용자 인터페이스(GUI) Chapter 17 이벤트 처리 Chapter 18 스윙(SWING) Chapter 19 애플릿(Applet)

  2. Chap16 그래피컬 사용자 인터페이스(GUI) Section 1 : Swing과 AWT Section 2 : AWT 패키지와 주요 클래스 Section 3 : 프레임(Frame) Section 4 : 배치 관리자(Layout Management) Section 5 : 판넬(Panel) Section 6 : 판넬에서의 그래픽 사용 Section 7 : 색의 사용 Section 8 : 글꼴의 사용

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

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

  5. 1. Swing과 AWT • SWING을 이용한 GUI 구축의 예

  6. 1. java.awt 패키지 GUI 구축을 위한 클래스들의 모임 java.awt 패키지에서 제공되는 클래스들의 유형별 분류 2. AWT 패키지와 주요 클래스

  7. 2. Component 클래스 GUI 구축에 필요로 되는 많은 하위 클래스들을 가지고 있다. 약 100여개의 메소드 제공 Component 클래스의 주요 메소드 2. AWT 패키지와 주요 클래스

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

  9. Container 클래스의 주요 메소드 2. AWT 패키지와 주요 클래스

  10. GUI를 구축을 위한 프레임 클래스 : JFrame 클래스 생성자 public JFrame() public JFrame(String title) title은 프레임의 제목을 의미 JFrame 클래스의 메소드 3. 프레임(Frame)

  11. 예제 1 : FrameTest1.java 예제 2 : FrameTest2.java 3. 프레임(Frame)

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

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

  14. 4. 배치 관리자(Layout Manager) • 예제 1 : FlowLayoutDemo.java

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

  16. 4. 배치 관리자(Layout Manager) • 예제 1 : BorderLayoutDemo.java

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

  18. 4. 배치 관리자(Layout Manager) • 예제 1 : GridLayoutDemo.java

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

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

  21. 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(...........);   } }

  22. 6. 판넬에서의 그래픽 사용 • Graphics 클래스의 주요 메소드

  23. 6. 판넬에서의 그래픽 사용 • Graphics 클래스의 주요 메소드-계속

  24. 6. 판넬에서의 그래픽 사용 • 예제 1 : GraphicsLine.java • 예제 2 : GraphicsRectangles.java

  25. 6. 판넬에서의 그래픽 사용 • 예제 3 : GraphicsCircle.java

  26. 6. 판넬에서의 그래픽 사용 • Dimension 클래스 • 그래픽을 애플릿의 크기에 따라 상대적인 위치에 나타내기 위해 애플릿의 크기 정보를 제공하는 Dimension 클래스를 이용 • 애플릿의 폭과 높이를 제공하는 클래스 • 생성자 Dimension(Dimension d) Dimension(int w, int h) • d : Dimension 객체 • w,h : 애플릿의 폭과 높이

  27. 6. 판넬에서의 그래픽 사용 • 예제 1 : DynamicRectangle.java

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

  29. 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)

  30. 7. 색의 사용 • Color 클래스의 주요 메소드

  31. 7. 색의 사용 • 예제 1 : ColorFont.java • 예제 1 : ColorFont.java

  32. 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); .... }

  33. 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 : 정보를 얻고자 하는 글꼴의 이름

  34. 8. 글꼴(Font)의 사용 • Font 클래스의 주요 메소드 • FontMetrics 클래스의 주요 메소드

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

  36. 8. 글꼴(Font)의 사용 • 예제 1 : SetFont.java • 예제 2 : FontExample.java

More Related