GUI p GUI component l l GUI screen

  • Slides: 73
Download presentation

GUI 컴포넌트 p GUI 컴포넌트(component) l l GUI 프로그램에서 사용하는 화면 요소(screen element) 예

GUI 컴포넌트 p GUI 컴포넌트(component) l l GUI 프로그램에서 사용하는 화면 요소(screen element) 예 p p l java. awt p l 레이블(label), 버튼(button), 텍스트 필드(text field), 텍스트 영역(text area), 스크롤바(scroll bar), 메뉴(menu) 등 Abstract Windowing Toolkit (AWT)으로 원조 Java GUI 패키지 javax. swing p © 창병모, 우균 다양한 컴포넌트가 추가된 GUI 패키지 4

GUI 컴포넌트 계층구조 p JFrame의 상속 관계 java. lang. Object java. awt. Component java.

GUI 컴포넌트 계층구조 p JFrame의 상속 관계 java. lang. Object java. awt. Component java. awt. Container java. awt. Window java. awt. Frame javax. swing. Frame © 창병모, 우균 Java 카페 6

Swing GUI 컴포넌트 p p p Swing GUI 컴포넌트들은 JComponent 클래스로부터 유도된다. JComponent는 일종의

Swing GUI 컴포넌트 p p p Swing GUI 컴포넌트들은 JComponent 클래스로부터 유도된다. JComponent는 일종의 Container이다. Container와 JComponent 클래스의 계층구조는 다음과 같다. java. lang. Object java. awt. Component java. awt. Container javax. swing. Jcomponent p 예: JPanel java. lang. Object java. awt. Component java. awt. Container javax. swing. JComponent javax. swing. JPanel © 창병모, 우균 8

애플릿 p Applet 혹은 JApplet l l Panel로부터 유도된 일종의 패널이다. 애플릿 생성, 실행

애플릿 p Applet 혹은 JApplet l l Panel로부터 유도된 일종의 패널이다. 애플릿 생성, 실행 등에 관한 모든 세부사항들이 정의되어 있다. java. lang. Object java. awt. Component java. awt. Container java. awt. Panel java. applet. Applet javax. swing. JApplet © 창병모, 우균 9

절대 위치 p 절대 위치(absolute positioning) l l 배치 관리자를 사용하지 않고 절대 위치를

절대 위치 p 절대 위치(absolute positioning) l l 배치 관리자를 사용하지 않고 절대 위치를 이용하여 배치 set. Bounds 메소드를 이용하여 컴포넌트의 크기와 위치 결정 set. Bounds(int x, int y, int width, int height) p 코드 예 Container cp = get. Content. Pane(); cp. set. Layout(null); JButton ok. Button = new JButton(); ok. Button. set. Bounds(50, 60, 30); cp. add(ok. Button); © 창병모, 우균 23

이벤트 클래스 리스너 인터페이스 메소드 Action. Event Action. Listener action. Performed(Action. Event e) Adjustment.

이벤트 클래스 리스너 인터페이스 메소드 Action. Event Action. Listener action. Performed(Action. Event e) Adjustment. Event Adjustment. Listener adjustment. Value. Changed(Adjustemnt. Event e) Component. Event Component. Listener component. Hidden(Component. Event e) component. Moved(Component. Event e) component. Resized(Component. Event e) component. Shown(Component. Event e) Container. Event Container. Listener component. Added(Container. Event e) component. Removed(Container. Event e) Focus. Event Focus. Listener focus. Gained(Focus. Event e) focus. Lost(Focus. Event e) Item. Event Item. Listener key. Event key. Listener List. Selection. Event List. Selection. Listener Mouse. Event Mouse. Motion. Listener Window. Event © 창병모, 우균 Window. Listener item. State. Changed(Item. Event e) key. Pressed(Key. Event e) key. Released(Key. Event e) key. Typed(Key. Event e) value. Changed(List. Selection. Event e) mouse. Clicked(Mouse. Event e) mouse. Entered(Mouse. Event e) mouse. Exited(Mouse. Event e) mouse. Pressed(Mouse. Event e) mouse. Released(Mouse. Event e) mouse. Dragged(Mouse. Event e) mouse. Moved(Mouse. Event e) window. Activated(Window. Event e) window. Closed(Window. Event e) … window. Opened(Window. Event e) 27

라디오 버튼: 학년 선택 예제 p 학년 선택 예제 Year. Panel 클래스 l l

라디오 버튼: 학년 선택 예제 p 학년 선택 예제 Year. Panel 클래스 l l l 스트링 배열 year. Text에 4개 학년 이름 저장 JRadio. Button을 이용하여 학년을 나타내는 라디오 버튼을 4개 생성 radio. Button[i] = new JRadio. Button(year. Text[i]); 이들을 Button. Group 객체인 buttons에 추가 buttons. add(radio. Button[i]); 이제 생성된 라디오 버튼을 Year. Panel에 추가 add(radio. Button[i]); 각 라디오 버튼마다 Item. Event 리스너인 Year. Listener 객체를 등록 radio. Button[i]. add. Item. Listener(listener); © 창병모, 우균 36

콤보 박스: 학년 선택 예제 p 학년을 선택하는 예제 Combo. Panel 클래스 l l

콤보 박스: 학년 선택 예제 p 학년을 선택하는 예제 Combo. Panel 클래스 l l 스트링 배열 combo. Box. Item에 4개의 학년 이름을 저장 학년을 선택하는 콤보 박스를 생성하고 이를 Combo. Panel에 추가 combo. Box = new JCombo. Box(combo. Box. Item); add(combo. Box); l 아이템 리스너 Combo. Listener 객체를 생성한 후 콤보 박스에 등록 Combo. Listener listener = new Combo. Listener( ); combo. Box. add. Item. Listener(listener); © 창병모, 우균 43

마우스 이벤트 p Position. Listener l l p Position. Panel 내의 내부 클래스 마우스

마우스 이벤트 p Position. Listener l l p Position. Panel 내의 내부 클래스 마우스 버튼이 클릭되면 마우스 이벤트로부터 클릭된 점(Point)을 가져온 후repaint 메소드를 호출한다. current = event. get. Point(); repaint(); // paint. Component 호출 paint. Component 메소드 l 원점에서 클릭된 지점까지 선을 그리고 좌표 값을 보여준다. page. draw. Line (current. x, current. y, 0, 0); page. draw. String("("+current. x+", "+current. y+")", current. x, current. y); © 창병모, 우균 51

이벤트 어댑터 클래스 p 예: Position. Listener l l Mouse. Listener를 구현하여 작성한 리스너는

이벤트 어댑터 클래스 p 예: Position. Listener l l Mouse. Listener를 구현하여 작성한 리스너는 mouse. Clicked() 외에 사용되지 않는 4개의 메소드도 빈 메소드로 구현하고 있다. Mouse. Adapter 클래스를 확장하여 구현 private class Position. Listener extends Mouse. Adapter { // 마우스 클릭으로 선택된 점을 저장하고 다시 그리도록 한다. public void mouse. Clicked (Mouse. Event event) { current = event. get. Point(); repaint(); } } © 창병모, 우균 58

Key Points © 창병모, 우균 69

Key Points © 창병모, 우균 69