운동시뮬레이션 강의 소개

Similar documents
Microsoft PowerPoint - 06-Chapter09-Event.ppt

슬라이드 1

gnu-lee-oop-kor-lec10-1-chap10

(Microsoft PowerPoint - LZVNQBAJWGTC.ppt [\310\243\310\257 \270\360\265\345])

오버라이딩 (Overriding)

<4D F736F F F696E74202D20C1A63138C0E520C0CCBAA5C6AE20C3B3B8AE28B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - ÀÚ¹Ù08Àå-1.ppt

Cluster management software

No Slide Title

PowerPoint Presentation

제8장 자바 GUI 프로그래밍 II

Microsoft PowerPoint - lec09_12.ppt [호환 모드]

10장.key

Microsoft PowerPoint - ÀÚ¹Ù08Àå-2.ppt

PowerPoint Presentation

JAVA PROGRAMMING 실습 08.다형성

<4D F736F F F696E74202D20C1A63230C0E520BDBAC0AE20C4C4C6F7B3CDC6AE203128B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

PowerPoint Presentation

Cluster management software

<4D F736F F F696E74202D20C1A63139C0E520B9E8C4A120B0FCB8AEC0DA28B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint 자바-AWT컴포넌트(Ch8).pptx

Javascript

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

PowerPoint Template

Microsoft PowerPoint - 10장

PowerPoint 프레젠테이션

강의자료

<4D F736F F F696E74202D205B4A415641C7C1B7CEB1D7B7A1B9D65D3130C0E5C0CCBAA5C6AEC3B3B8AE>

PowerPoint Presentation

<4D F736F F F696E74202D20C1A63236C0E520BED6C7C3B8B428B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

Microsoft PowerPoint - 2강

<4D F736F F F696E74202D20C1A63233C0E520B1D7B7A1C7C820C7C1B7CEB1D7B7A1B9D628B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Cluster management software

<4D F736F F F696E74202D20C1A63034B0AD202D20C7C1B7B9C0D3B8AEBDBAB3CABFCD20B9ABB9F6C6DBC0D4B7C2>

10 이벤트 처리와 그래픽 프로그래밍.key

11장.key

슬라이드 1

9장.key

. 스레드 (Thread) 란? 스레드를설명하기전에이글에서언급되는용어들에대하여알아보도록하겠습니다. - 응용프로그램 ( Application ) 사용자에게특정서비스를제공할목적으로구현된응용프로그램을말합니다. - 컴포넌트 ( component ) 어플리케이션을구성하는기능별요

var answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");

Design Issues

제11장 프로세스와 쓰레드

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

슬라이드 1

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

Java Programing Environment

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어

Microsoft PowerPoint - 14주차 강의자료

쉽게 풀어쓴 C 프로그래밍

PowerPoint Presentation

어댑터뷰

[ 그림 8-1] XML 을이용한옵션메뉴설정방법 <menu> <item 항목ID" android:title=" 항목제목 "/> </menu> public boolean oncreateoptionsmenu(menu menu) { getme

Network Programming

Microsoft PowerPoint 장강의노트.ppt

안드로이드기본 11 차시어댑터뷰 1 학습목표 어댑터뷰가무엇인지알수있다. 리스트뷰와스피너를사용하여데이터를출력할수있다. 2 확인해볼까? 3 어댑터뷰 1) 학습하기 어댑터뷰 - 1 -

C++ Programming

C# Programming Guide - Types

작성자 : 김성박\(삼성 SDS 멀티캠퍼스 전임강사\)

PowerPoint Presentation

Microsoft PowerPoint - Java-03.pptx

Microsoft PowerPoint - CSharp-10-예외처리

gnu-lee-oop-kor-lec06-3-chap7

JUNIT 실습및발표

슬라이드 1

Microsoft PowerPoint - 04-UDP Programming.ppt

No Slide Title

쉽게 풀어쓴 C 프로그래밍

슬라이드 1

PowerPoint 프레젠테이션

Microsoft PowerPoint - EEL2 Lecture10 -Swing and Event Handling.pptx

PowerPoint 프레젠테이션

윈도우시스템프로그래밍

제1장 자바 언어 소개

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

쉽게

2 단계 : 추상화 class 오리 { class 청둥오리 extends 오리 { class 물오리 extends 오리 { 청둥오리 mallardduck = new 청둥오리 (); 물오리 redheadduck = new 물오리 (); mallardduck.swim();

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PowerPoint Presentation

Microsoft PowerPoint - web-part02-ch16-이벤트.pptx

(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345])

Spring Boot/JDBC JdbcTemplate/CRUD 예제

JAVA PROGRAMMING 실습 05. 객체의 활용

PowerPoint Presentation

UI TASK & KEY EVENT

슬라이드 1

class Sale void makelineitem(productspecification* spec, int qty) SalesLineItem* sl = new SalesLineItem(spec, qty); ; 2. 아래의액티비티다이어그램을보고 Java 또는 C ++,

PowerPoint Presentation

JTable과 MVC(Model-View-Controller) 구조 - 모델-뷰-컨트롤러구조는데이터의저장과접근에대한제공은모델이담당하고, 화면표시는뷰, 이벤트의처리는컨트롤러가하도록각역할을구분한구조이다. 즉, 역할의분담을통하여상호간의영향을최소화하고각요소의독립성을보장하여독자

PowerPoint 프레젠테이션

자바GUI실전프로그래밍2_장대원.PDF

Microsoft PowerPoint - 13_UMLCoding(2010).pptx

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a

public class FlowLayoutPractice extends JFrame { public FlowLayoutPractice() { super("flowlayout Practice"); this. Container contentpane = getcontentp

쉽게 풀어쓴 C 프로그래밍

소프트웨어공학 Tutorial #2: StarUML Eun Man Choi

슬라이드 1

ch09

10.0pt1height.7depth.3width±â10.0pt1height.7depth.3widthÃÊ10.0pt1height.7depth.3widthÅë10.0pt1height.7depth.3width°è10.0pt1height.7depth.3widthÇÁ10.0pt1height.7depth.3width·Î10.0pt1height.7depth.3width±×10.0pt1height.7depth.3width·¡10.0pt1height.7depth.3width¹Ö pt1height.7depth.3widthŬ10.0pt1height.7depth.3width·¡10.0pt1height.7depth.3width½º, 10.0pt1height.7depth.3width°´10.0pt1height.7depth.3widthü, 10.0pt1height.7depth.3widthº¯10.0pt1height.7depth.3width¼ö, 10.0pt1height.7depth.3width¸Þ10.0pt1height.7depth.3width¼Ò10.0pt1height.7depth.3widthµå

Transcription:

Event 발생과처리 Event 생성자 Event 처리자 Event listeners Keyboard, Mouse, Button, Menu, Panel,

Motion2DGraph Vector<Double> y Vector<Double> y Vector<Double> x Vector<Vector<Double>> y

MotionGUI Window Frame Menu supply Action process Set Solver

MotionSolver Solve differential equations Vector<Double> x Vector<Vector<Double>> y Vector<Double> y00

6.1 자바의이벤트처리방법 자바에서는이벤트를받기원하는객체에대해서만이벤트를전달하게된다. 즉, 어떤객체에서특정이벤트를받기원한다면그객체에특정이벤트를받기위한리스너 (Listener) 를틍록 자바에서는각이벤트들이하나의클래스로정의 이벤트객체는두개의영역으로나눈다. 저수준 : AWT 컴포넌트에서일어나는이벤트 기보드이벤트를위한 java.awt.event.keyevent 마우스이벤트를위한 java.awt.event.mouseevent 윈도우이벤트를위한 java.awt.event.windowevent 등 고수준 : 사용자의반응을의미론적으로해석 사용자의액션을다루는 java.awt.event.actionevent 객체의값이바뀔때발생하는이벤트를다루는 java.awt.event.adjustmentevent 텍스트객체의값이바뀔때발생하는이벤트를다루는 java.awt.event.textevent 등

6.1.2 이벤트모델과이벤트객체 (1) 저수준이벤트와고수준이벤트에속한객체 저수준 Java.lang.Object Java.util.EventObject Java.awt.AWTEvent Java.awt.eventComponentEvent java.awt.event.focusevent java.awt.event.inputevent java.awt.event.keyevent java.awt.event.mouseevent java.awt.event.containerevent java.awt.event.windowevent 고수준 Java.lang.Object java.util.eventobject java.awt.awtevent java.awt.event.actionevent java.awt.event.adjustmentevent java.awt.event.itemevent java.awt.event.textevent

6.1.2 이벤트모델과이벤트객체 (2) AWT 의각컴포넌트에서발생할수있는이벤트의종류 Action Event Adjustmen tevent Componen tevent Container Event FocusEve nt ItemEv ent KeyEve nt MouseEv ent Button Canvas Checkbox CheckboxMenuItem TextEv ent WindowE vent Choice Component Container Dialog Frame Label List MenuItem Panel Scrollbar ScrollPane TextArea TestComponent TextField Window

6.1.3 이벤트소스와이벤트리스너 이벤트모델의 3 가지요소 : 이벤트소스, 이벤트리스너, 이벤트어댑터 이벤트소스 (Event Source) : 이벤트를발생시킴 AWT 컴포넌트객체를의미 ( 처리하고싶은각이벤트에대한리스너를만들어이벤트소스에등록해야함 ) 이벤트리스너 (Event Listener) : 발생한이벤트를받아처리하는객체 ( 리스너는이벤트를처리하고싶은이벤트소스에등록되어있어야함 ) 리스너는각이벤트를처리하기위해정의된인터페이스를구현함으로써만들수있다. 리스너객체에서는각리스너인터페이스에선언해놓은메소드를구체적으로정의하면됨 리스너인터페이스들의목록 저수준 고수준 java.util.eventlistener java.util.eventlistener java.util. ComponentListener java.util. ContainerListener java.util. FocusListener java.util. KeytListener java.util. MouseListener java.util. MouseMotionListener java.util. WindowListener java.util. ActionListener java.util. AdjustmentListener java.util. ItemListener java.util. TextListener

6.1.4 이벤트어댑터 이벤트어댑터는리스너객체를정의하는프로그래머들이실수하지않고편하게프로그램을만들수있도록도와주는일종의도우미클래스 리스너객체를만들기위해리스너인터페이스에선언되어있는메소드들을모두다구현해야하기때문에코딩중에실수가발생할수있다. 그래서하나라도구현하지않으면에러가발생하게되어이런불편함을없애기위해제공되고있는것이바로이벤트어댑터 (Event Adapter) 객체. 이벤트어댑터는이벤트리스너인터페이스에선언된메소드들을미리구현해놓은클래스 리스너객체를만들때단지이이벤트어댑터클래스를상속받기만하면된다.( 필요한매소드에대해서재정의 ) 저수준의이벤트리스너에대해서만이벤트어댑터가제공 6.2 자바의이벤트객체 6.2.1 AWTEvent (1) AWTEvent 는모든 AWT 이벤트들의최상위클래스 AWTEvent 클래스의생성자 AWTEvent(Object source, int id) AWTEvent(Event event)

6.2.1 AWTEvent (2) AWTEvent 클래스에서제공되는메소드중에서중요한것은발생한이벤트를소멸시키기위해사용하는 consume() 이라는메소드일것이다. Consume() 메소드는이벤트를모두처리한후에원래발생한객체로되돌려주지않고소멸시키게된다. 현이벤트의고유번호 (ID) 를리턴하는 getid() 메소드와이벤트를소멸시켰는지를체크하기위한 IsConsumed() 메소드도제공 AWTEvent 클래스에는새로운컴포넌트를정의할때특정이벤트를허용할것인지또는금지할것인지의여부를지정하기위해사용되는이벤트마스크상수가정의 이벤트를발생하도록허용하기위해사용되는메소드 java.awt.component 클래스의 enableevents() : 금지하기위해사용되는메소드 java.awt.component 클래스의 disableevents() : AWTEvent 에정의된이벤트마스크이벤트마스크 ACTION_EVENT_MASK ADJUSTMENT_EVENT_MASK COMPONENT_EVENT_MASK CONTAINER_EVENT_MASK FOCUS_EVENT_MASK ITEM_EVENT_MASK KEY_EVENT_MASK MOUSE_EVENT_MASK MOUSE_MOTION_EVENT_MASK RESERVED_ID_MAX TEXT_EVENT_MASK WINDOW_EVENT_MASK ActionEvent 를위한이벤트마스크 AdjustmentEvent 를위한이벤트마스크 ComponentEvent 를위한이벤트마스크 ContainerEvent 를위한이벤트마스크 FocusEvent 를위한이벤트마스크 ItemEvent 를위한이벤트마스크 KeyEvent 를위한이벤트마스크 MouseEvent 를위한이벤트마스크 마우스이동이벤트를위한이벤트마스크 내정된 AWT 이벤트 ID 의최대값 TextEvent 를위한이벤트마스크 WindowEvent 를위한이벤트마스크

6.2.2. Action Event(1) ActionEvent 는컴포넌트에서특정동작을할때발생하는액션이벤트를처리하기위한클래스 ( 특정동작이라는것은각컴포넌트별로의미가다르다 ) 액션이벤트를발생할수있는컴포넌트로는 Button, List, MenuItem, TextField 가있음 ( 각컴포넌트들은다음과같은상황에서액션이벤트가발생 ) 컴포넌트 Button List MenuItem TextField 액션이벤트발생상황마우스로버튼을클릭했을때마우스로리스트에있는아이템을더블클릭했을때마우스로메뉴를선택했을때텍스트필드에서 Enter 키를눌렀을때 ActionEvent 객체를만드는데사용되는생성자 ( 임의로이벤트를발생시키기위해 ActionEvent 객체를만들고자할때사용 ) ActionEvent(Object source, int id, String command) ActionEvent(Object source, int id, String command, int modifiers)

6.2.2. Action Event(2) 컴포넌트에서발생하는액션이벤트를처리하기위해서는리스너라는것을만들어야함 리스너는반드시 ActionListener 인터페이스를구현한것 리스너를만든후에는 addactionlistener 메소드를통해액션이벤트를처리할컴포넌트에등록 void actionperformed(actionevnet evt) ActionListener 인터페이스에는위와같은메소드가선언, 리스너객체내에서는이메소드를구체적으로구현 ex) class actionlistener implements ActionListener { public void actionperformed(actionevent e) { // 액션이벤트발생시실행할코드 } } 각컴포넌트에서액션이벤트가발생하면액션커맨드 (Action Command) 라는문자열이자동적으로만들어지됨. 현재발생한액션이벤트의액션커맨드는다음과같은메소드를통해알수있다. String getactioncommand()

6.2.2. Action Event(3) ActionEvent 클래스는액션이벤트가발생했을때현재 Modifier 키의상태를체크하기위한메소드도제공하면리턴되는값에서특정 Modifier 키가눌러졌는지를체크하기위한마스크상수도함께제공 Modifier : Ctrl, Alt, Shift 와같은보조기를의미 int getmodifiers() Modifier 키마스크 마스크상수 ALT_MASK CTRL_MASK META_MASK SHIFT_MASK ALT 키상수 Ctrl 키상수메타키상수 Shift 키상수 Ex) Ctrl 키가눌러졌는지를체크하기위해서는다음과같은코드를만들면된다. public void actionperformed(actionevent evt) { if((evt.getmodifiers() & ActionEvent.CTRL_MASK)!=0) { // ActionEvent 발생시 Ctrl 키눌림 } }

6.2.2. Action Event(4) 액션이벤트는마우스로버튼을클릭했을때발생 액션이벤트는마우스로리스트에있는아이템을더블클릭했을때발생 액션이벤트는마우스로메뉴를선택했을때발생 액션이벤트는텍스트필드에서 Enter키를눌렀을때발생 액션이벤트는리스너 : ActionListener 인터페이스 액션이벤트리스너를등록하는컴포넌트맴버메소드 : addactionlistener() 액션이벤트발생시액션커맨드를이벤트를발생시킨컴포넌트를구분할수있다. 액션이벤트발생시 Modifier키상태알아내기 : getmodifier()

Javax 를이용한 GUI 프로그램 Java event model Java event 처리

Java event model http://java.sun.com/j2se/1.3/docs/ guide/awt/designspec/events.html Low level event Semantic event Event listener Event sources Adapters

Low level event

Semantic event

Event listeners

Low level listeners

Semantic listeners

Low level sources

Semantic sources

Semantic sources

Adapters

Event model

Event model

Event model

Event model

How to make GUI program http://java.sun.com/docs/books/tut orial/uiswing/components/frame.ht ml

Code exmaple

Code example

Code example

할일 GUI 공부하기 Java Tutorial

질문 질문하세요