GUI 프로그래밍과 AWT 컴퓨터 공학실험(I) 인공지능 연구실.

Slides:



Advertisements
Similar presentations
6 장 객체 - 지향 설계 ③. 목차 GUI 레이아웃  전화기 키 패드 전화기 키 패드 전화기 키 패드 모양의 GUI 를 만드는 Telephone.java, TelephonePanel.java 를 완성해 보자.  주석을 참고하여 TelephonePanel.java.
Advertisements

12 장 자바 애플릿. 2 Applet 개요 Applet 프로그램 – 웹 페이지에 포함되어 구동 된다. 웹 브라우저나 애 플릿뷰어 (appletviewer) 에서 실행되는 프로그램 – 웹 브라우저 내에 Applet 을 해석하여 실행할 수 있 도록 Applet 구동용 인터프리터가.
자바 5.0 프로그래밍.
- 계산기 GUI 구성하기 - 조원: 박강국 오정은 이귀식 김도윤 안영진.
10. 예외 처리.
그래픽 프로그래밍 (GUI - Graphic User Interface)
Ch.22 Command Pattern 장 덕 성 계명대학교 컴퓨터공학과 정보공학실험실
9장. 스윙 프로그래밍.
GUI 이벤트, 이벤트 리스너와 이벤트 소스 그림 그리기 내부 클래스
149개의 실습예제로 배우는 Flash 8.
클래스 class, 객체 object 생성자 constructor 접근 access 제어 이벤트 event 처리.
제7장 이벤트 프로그래밍.
명품 JAVA Essential.
7장 배열 ③.
레이아웃 관리자 스윙 구성요소 비트박스 프로그램
컴퓨터 프로그래밍 실습 #7 제 4 장 GUI 클래스 작성.
Java Seminar Chapter3.
GUI 환경에서 작동하는 프로그램에 대하여 윈도우 프로그램의 작성 방법 그래픽과 이미지 디스플레이 방법 오디오 파일 재생 방법
J2ME(Java 2 Micro Edition) 무선 장치용 UI의 핵심 컴포넌트
명품 JAVA Programming.
CUDA Setting : Install & Compile
Kim heesang JDBC Programming 2 Kim heesang
제 4 장 클래스 작성 Lab 4- 2.
9장 AWT(1).
Lesson 12. 사용자 인터페이스(AWT) - 1
Lesson 11. 이벤트.
Java의 정석 제 13 장 AWT와 애플릿 Java 정석 남궁성 강의
컴퓨터공학실습(I) 3주 인공지능연구실.
Power Java 제4장 자바 프로그래밍 기초.
Power Java 제19장 배치 관리자(Layout Manager).
어서와 Java는 처음이지! 제8장 그래픽 사용자 인터페이스.
Choi Younghwan CSE HUFS
java.awt 패키지의 단순 컴포넌트와 이벤트 처리
JAVA 프로그래밍 6장 객체지향프로그래밍의 핵심.
Chapter 12. Awt와 Swing Chapter 13. 배치 관리자 Chapter 14. 이벤트 관리자
Java로 배우는 디자인패턴 입문 Chapter 22. Command 명령을 클래스로 만든다
Swing 컴포넌트 텍스트 컴포넌트 텍스트 필드 텍스트 영역 스크롤 페인 체크 박스 라디오 버튼.
이벤트 프로그래밍 안혜선.
Java Seminar Chapter 4.
8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용 8.3 인터페이스의 상속 8.4 인터페이스 참조
5장 조건과 반복 ③.
메모장 구동.
9장 AWT(1).
GUI 프로그래밍과 AWT 컴퓨터 공학실험(I) 인공지능 연구실.
명품 JAVA Programming 제 15 장 애플릿과 멀티미디어.
JAVA WINDOW PROGRAMMING
자바 5.0 프로그래밍.
Power Java 제14장 배치 관리자.
그래픽 사용자 인터페이스와 사건처리.
컴퓨터 프로그래밍 실습 #6 제 4 장 클래스 작성.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
10장 tkinter로 GUI 만들기.
30강 JAVA 그래픽 JAVA GUI(Graphic User Interface)란? AWT 컴포넌트? Swing 컴포넌트?
Ch.1 Iterator Pattern <<interface>> Aggregate +iterator
ASP.NET AJAX / AJAX Control Toolkit 응용 2008 컴퓨터공학실험( I )
JAVA WINDOW PROGRAMMING
CACM 구현 public class CACM { public CACM(File file)
Mariadb JDBC PROGRAMMING2
제8장 쓰레드 프로그래밍.
제 4 장 클래스 작성 Lab 4- 2.
Outline 클래스의 해부 캡슐화(Encapsulation) 메쏘드의 해부 그래픽 객체(Graphical Objects)
JVM의 구조와 메모리 모델 JVM의 내부 구조 클래스 파일 클래스 로더 메소드(method) 영역 힙(heap) 영역
담당 : 황기태 교수님 학번 : ㈜ 이름 : 조성대 제출 :
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
Power Java 제14장 배치 관리자.
Java의 정석 제 7 장 객체지향개념 II-3 Java 정석 남궁성 강의
Chapter2 : 자바환경과 자바 프로그램 2.1 자바 개발 환경 2.2 자바 통합개발환경(IDE)
Chapter8 : 인터페이스와 패키지 8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용
J2SE 설치 부산대학교 인공지능 연구실.
Presentation transcript:

GUI 프로그래밍과 AWT 컴퓨터 공학실험(I) 인공지능 연구실

GUI 프로그래밍 AWT(Abstract Window Toolkit) Component GUI program을 하는 데 필요한 Component들을 제공하는 set 기본적인 GUI와 관련된 class의 모임 Component 화면에 표시될 수 있는 그래픽 엔터티를 AWT에서는 Component라고 부른다 Component 속성 position=> (x,y) name => String size => 너비, 넓이 foreground color, background color, font, visible, valid

Container component를 담을 수 있는 class Container class는 Component class의 자손이다. Frame, Panel, Applet은 Component를 담을 수 있는 Container이다. Window 와 Frame object  =>Container로서, 화면에 단독으로 display될 수 있는 Component이다. Panel object => Container로서, 화면에 단독으로 보여질 수 없다. 따라서 Frame같은 Container에 포함되어 display된다

Frame import java.awt.*; //반드시 import 한다.     public class MyFrame extends Frame { //Frame Class를 상속 받아서 사용     public MyFrame (String str) {         super(str); }    public static void main (String args[]) {         MyFrame fr = new MyFrame(“Frame사용 예제");         fr.setSize(300,300);         fr.setBackground(Color.red); fr.pack(); // Layout을 알아서 정렬해줌.         fr.setVisible(true); // Frame은 화면에 보이지 않게 지정되어 있다. setVisible(true)를 이용해 화면에 나타나게 한다.    }

Layout Manager(1) Layout Manager : container안의 component의 배치를 담당한다. FlowLayout : Panel, Applet의 default Layout manager BorderLayout : Window, Frame의 default Layout manager GridLayout CardLayout GridBagLayout

Layout Manager(2) FlowLayout Panel의 default layout manager이다. component를 왼쪽에서 오른쪽으로 배치한다. default로 component를 중앙에 위치시킨다. component의 size는 layout manager가 결정한다. Layout Manager의 Constructor를 이용하면 Manager의 속성을 변경할 수 있다.

Layout Manager(3) BorderLayout Frame의 default layout manager 중요한 컴포넌트를 중심으로 보조 컴포넌트들을 주변에 배치할 때 사용 f = new Frame("Border Layout"); bn = new Button("B1"); bs = new Button("B2"); bw = new Button("B3"); be = new Button("B4"); bc = new Button("B5"); f.add(bn, BorderLayout.NORTH); f.add(bs, BorderLayout.SOUTH); f.add(bw, BorderLayout.WEST); f.add(be, BorderLayout.EAST); f.add(bc, BorderLayout.CENTER);

FlowLayout 과 BorderLayout 응용

Layout Manager(4) GridLayout GridLayout은 격자를 만들고 그 안에 component를 위치시키는 방법 add()를 통해 component를 추가하면 왼쪽에서 오른쪽으로, 위에서 아래로 추가된다 f = new Frame("GridLayout"); f.setLayout (new GridLayout(3,2)); b1 = new Button("1"); b2 = new Button("2"); b3 = new Button("3"); b4 = new Button("4"); b5 = new Button("5"); b6 = new Button("6"); f.add(b1); f.add(b2); f.add(b3); f.add(b4); f.add(b5); f.add(b6); f.pack(); f.setVisible(true);

Layout Manager(5) CardLayout GridBagLayout 여러 화면을 겹쳐 두었다가 특정한 화면만 보이도록 할 때 사용한다. GridBagLayout 다른 Layout 매니저 보다 융통성이 좋으나, 사용하기가 복잡하다. 임의의 직사각형 격자에 컴포넌트를 배열하는 방식을 사용한다.

AWT Event Model Java의 Event Model Event : 사용자가 Program에 가한 행동 Event Source : Event가 일어난 근원 Event Handler : 발생된 Event object를 받아 적당한 행동을 취 하는method

Event Handler(1) import java.awt.*; public class ButtonTest { public static void main(String args[]) {         Frame f = new Frame("Button Test"); //Frame 생성         Button b = new Button("버튼이닷!!"); //Button 생성         b.addActionListener(new ButtonHandler()); //addActionListener() method는 이 Button에 Event Handler를 지정         f.add(b, "Center");         f.pack();         f.setVisible(true); } } 

Event Handler(2) import java.awt.event.*;  public class ButtonHandler implements ActionListener { // interface 안에 있는 특정한 abstract method를 구현  public void actionPerformed(ActionEvent e) {         System.out.println("Button이 눌려졌당");         System.out.println("Button에 적힌 글은 " + e.getActionCommand());   } } Event Handler를 만들 때는 반드시 적당한 Event Handler Interface를 implements해야 한다 addXXXListener()의 argument로 올 Event Handler class는 반드시 XXXListener interface를 implements 해야 한다.

Method Categories and Interfaces

Event Handler(3) Event를 처리하는 방법 Event를 발생시킬 Event Source를 찾는다. Event Source에 addXXXListener()를 적용한다. 이 때 Event Handler도 지정한다. 실제 Event Handler를 구현한다 f.addWindowListener(new WindowHandler()); // 앞 예제에서 생성한 버튼에 Listener 추가 public void windowClosing(WindowEvent e) { // WindowHandler class Event Handler 구현         setVisible(false); // Frame을 화면에서 없앤다.         dispose(); // 모든 자원을 반납한다.         System.exit(0); // Program을 종료한다. }  public void windowOpened(WindowEvent e) { } public void windowIconified(WindowEvent e) { } public void windowDeiconified(WindowEvent e) { } public void windowClosed(WindowEvent e) { } public void windowActivated(WindowEvent e) { } public void windowDeactivated(WindowEvent e) { } }

Multiple Listener 하나의 Event source에 여러 개의 Event Handler를 붙일 수 있다. 2개의 Event Handler를 구현한다(interface의 모든 method를 구현한다. 이때 필요 없는 method는 빈 body로 구현한다.)                tf = new TextField (30); // 앞 소스에 TextField 추가 f.addMouseMotionListener(this); // MouseMotionListener 추가 f.addMouseListener (this); // MouseListener 추가 public void mouseEntered (MouseEvent e) {         String s = "The mouse entered";         tf.setText (s);  }     public void mouseMoved(MouseEvent e) { String s = "Mouse Position: X = "+ e.getX() +" Y = " +e.getY();    public void mouseExited (MouseEvent e) { } // 나머지는 빈 body()로 정의    public void mousePressed (MouseEvent e) { }     …………..

Event Adapter 해당 Event Listener를 대신 implements한 class이다. 상속을 통해 사용된다. Event Handler interface를 구현할 때, 사용하지 않는 method까지 구현해야 하는 불편을 보완. multiple listener를 adapter만으로는 구현하기 불가능하다( java는 다중상속을 허용하지 않으므로 여러 class들을 상속 받을 수 없다. f.addWindowListener (new WindowAdapter() { //object 생성 및 재정의 (overriding)를 동시에 한다. public void windowClosing(WindowEvent e) { f.setVisible(false); f.disopose(); System.exit(0); } } );