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

Similar documents
9장.key

PowerPoint 프레젠테이션

Microsoft PowerPoint - [JAVA프로그래밍]9장GUI

<4D F736F F F696E74202D20C1A63138C0E520C0CCBAA5C6AE20C3B3B8AE28B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20C1A63139C0E520B9E8C4A120B0FCB8AEC0DA28B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

10장.key

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

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

11장.key

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

Microsoft PowerPoint - java2-lecture5.ppt [호환 모드]

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

오버라이딩 (Overriding)

PowerPoint Presentation

<4D F736F F F696E74202D20C1A63230C0E520BDBAC0AE20C4C4C6F7B3CDC6AE203128B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

강의자료

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

<4D F736F F F696E74202D20C1A63236C0E520BED6C7C3B8B428B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - 04-UDP Programming.ppt

슬라이드 1

PowerPoint Presentation

슬라이드 1

No Slide Title

Java Programing Environment

Microsoft PowerPoint - java1-lecture10.ppt [호환 모드]

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

Microsoft PowerPoint - 06-Chapter09-Event.ppt

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

<4D F736F F F696E74202D20C1A63233C0E520B1D7B7A1C7C820C7C1B7CEB1D7B7A1B9D628B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - Java-03.pptx

No Slide Title

Cluster management software

PowerPoint Presentation

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

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

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

Microsoft PowerPoint - 14주차 강의자료

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

제13강. 스윙(Swing)

자바로

PowerPoint Presentation

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

Microsoft PowerPoint - 12장_스윙 [호환 모드]

PowerPoint Presentation

Microsoft PowerPoint - java1-lecture11.ppt [호환 모드]

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

슬라이드 1

11-GUI.key

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

Java Coding Standard

02 C h a p t e r Java

Chap12

PowerPoint Presentation

05-class.key

모든스윙컴포넌트에는텍스트옆에이미지를추가로표시할수있다. ImageIcon image = new ImageIcon("image.gif"); JLabel label = new JLabel(" 이미지레이블 "); label.seticon(image);

<4D F736F F F696E74202D205B4A415641C7C1B7CEB1D7B7A1B9D65D3130C0E5C0CCBAA5C6AEC3B3B8AE>

PowerPoint 프레젠테이션

Design Issues

제1장 자바 언어 소개

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

중간고사

PowerPoint 프레젠테이션

Cluster management software

Microsoft PowerPoint - Java7.pptx

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

JMF3_심빈구.PDF

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

rmi_박준용_final.PDF

Microsoft PowerPoint - 10장

12장.그래픽 사용자 인터페이스

슬라이드 1

Network Programming

DB 에데이터저장을위한입력창설계 - JLabel, JTextField, JButton 을이용한입력창설계 - 2 -

歯NetworkKawuiBawuiBo.PDF

운동시뮬레이션 강의 소개

PowerPoint Presentation

Microsoft Word - java18-1-final-answer.doc

PowerPoint Presentation

Microsoft Word - java19-1-final-answer.doc

01-OOPConcepts(2).PDF

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

Spring Boot

ch09

12-file.key

PowerPoint Presentation

연습문제이론홀수정답

JAVA PROGRAMMING 실습 08.다형성

자바 쓰레드 능숙하게 다루기

Cluster management software

강의방법 (Teaching Method) 강의및실습 요소출석중간고사기말고사과제물기타 1 기타 2 기타 3 기타 4 비율 (%) 10% 30% 30% 30% 성적평가 (Grading) 만점 (Full Marks) 요소기타 5 기타 6 기타 7 기타

8장.그래픽 프로그래밍

PowerPoint Presentation

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

10-Java Applet

Cluster management software

Interstage5 SOAP서비스 설정 가이드

Transcription:

전자공학실험 2 1 WEEK10: SWING AND EVENT HANDLING Fall, 2014 건국대전자공학부 Notice: 주별강의 / 실습 /HW 내용 2 Week Date 강의주제 Homework 실습과제 Handouts 1 09월 03일 Orientation Lab1 Lecture0 2 09월 10일 추석 3 09월 17일 Using Objects Lab2 Lecture1 4 09월 24일 Classes, Objects HW1 Lab3 Lecture2 5 10월 01일 Inheritance, Interface HW2 Lab4 Lecture3 6 10월 08일 Exception Handling, Thread HW3 Lab5 Lecture4 7 10월 15일 File, I/O Streams - Byte Stream HW4 Lab6 Lecture5 8 10월 22일 Mid-term Exam. 9 10월 29일 File, I/O Streams-Char. Stream Lab9 Lecture9 10 11월 05일 Swing & Event Handling Lab10 Lecture10 11 11월 12일 Java Network Programming I HW11 Lab11 Lecture11 12 11월 19일 Java Network Programming II HW12 Lab12 Lecture12 13 11월 26일 Android Programming I HW13 Lab13 Lecture13 14 12월 03일 Android Programming II Lab14 Lecture14 15 12월 10일 Android Programming III Lab15 Lecture15 16 12월 17일 Final Exam 건국대학교전자공학부 1

실습결과보고서제출일 3 Lab.10.1~10.8 : Due Nov. 12 Lab.10.9~10.11 : Due Nov. 19 Notice: Grading Policy Midterm: 10% Final Exam: 20% Term projects: 40% Labs 20% Attendance : 10% Total: 100 Midterm: 10% Final Exam: 30% Labs 30% Attendance : 10% Total: 80 건국대학교전자공학부 2

실습및결과보고방식변경 5 팀 ( 실습조 ) 단위에서개인단위로변경 어느정도적응기간을거친것으로판단 평가의공정성과변별력제고 실습시기존의고정좌석제폐지! 11/5 실습좌석배치 6 성명실험조난수좌석번호성명실험조난수좌석번호 이채준 6 0.021455 1 박구병 7 0.491018 13 적아휘 7 0.056123 2 박정훈 4 0.527585 14 이준엽 9 0.066823 3 윤치열 5 0.542705 15 주성호 2 0.129454 4 임준형 3 0.548247 16 이서우 6 0.187719 5 유홍식 9 0.564632 17 민인기 5 0.221988 6 정치영 9 0.580557 18 최재은 1 0.225317 7 나지원 6 0.668645 19 윤재형 1 0.226765 8 이윤호 2 0.74075 20 이희준 4 0.381541 9 김창섭 8 0.756163 21 신승훈 3 0.385686 10 이한용 8 0.811005 22 조현민 8 0.399053 11 김지혜 5 0.86838 23 원용범 4 0.487787 12 문찬용 7 0.934871 24 건국대학교전자공학부 3

스윙컴포넌트예시 7 JButton JCheckBox JRadioButton JSlider JPasswordField JSpinner JTextField JTextArea JComboBox JList Swing 으로만든 GUI 프로그램샘플 8 JButton JLabel JTextField 프레임윈도우닫기버튼 JMenu JToolBar JFrame JMenuBar JComboBox JList JLabel JScrollPane JSplitPane 건국대학교전자공학부 4

GUI 라이브러리계층구조 Object Font FontMetrics Component Dimension Color Graphics AWT 클래스 Button Label TextComponent Container List Canvas Scrollbar Panel Window Checkbox Choice Applet Frame Dialog Swing 클래스 JComponent JApplet JFrame JDialog JLabel JList JComboBox JSlider JTextComponent AbstractButton JScrollBar JPanel JLayeredPane JEditorPane JTextField JTextArea JOptionPane JTabbedPane JSplitPane JSeparator JRootPane JToolBar JPasswordField JMenuItem JButton JToggleButton JMenuBar JToolTip JPopupMenu JFileChooser JMenu JCheckBox JColorChooser JTree JTable JTableHeader JCheckBoxMenuItem JRadioButton JProgressBar JSpinner JScrollPane JInternalFrame JRadioButtonMenuItem 9 10 건국대학교전자공학부 5

11 Lab.10-1: FirstSwing.java 주어진 Java Program 을실행시켜보고결과를보임. 프로그램에대해간단히설명. 실행시나타난프레임창우상단 X 를클릭해보고어떤일이일어나는지분석. 프로그램을종료하려면? import java.awt.*; import javax.swing.*; class FirstSwing public static void main(string[] args) JFrame frm=new JFrame("First Swing"); frm.setbounds(120, 120, 400, 100); frm.setlayout(new FlowLayout()); JButton btn1=new JButton("My Button"); JButton btn2=new JButton("Your Button"); JButton btn3=new JButton("Our Button"); frm.add(btn1); frm.add(btn2); frm.add(btn3); frm.setvisible(true); 12 건국대학교전자공학부 6

13 14 건국대학교전자공학부 7

15 Lab.10-2: EventHandler.java 주어진 Java Program 을실행시켜보고결과를보이시오. 그리고프로그램에대해간단히설명하시오. 세번째버튼이클릭되면프로그램이종료되도록수정. import java.awt.*; import java.awt.event.*; import javax.swing.*; class MouseEventHandler implements MouseListener /* 마우스버튼이클릭되었을때 ( 눌렸다풀렸을때 ) 호출됩니다. */ public void mouseclicked(mouseevent e) JButton button=(jbutton)e.getcomponent(); button.settext("clicked"); System.out.println("Clicked Button"+e.getButton()); System.out.println(" 마우스버튼눌렸다풀림 "); /* 마우스커서가버튼위에올라가면호출됩니다. */ public void mouseentered(mouseevent e) System.out.println(" 커서버튼위진입 "); (cont d on next slide) 16 Lab.10-2: EventHandler.java /* 마우스커서가버튼을빠져나가면호출됩니다. */ public void mouseexited(mouseevent e) System.out.println(" 커서버튼위탈출 "); /* 마우스버튼이눌리는순간호출됩니다. */ public void mousepressed(mouseevent e) System.out.println(" 마우스버튼눌림 "); /* 마우스버튼이풀리는순간호출됩니다. */ public void mousereleased(mouseevent e) System.out.println(" 마우스버튼풀림 "); (cont d on next slide) 건국대학교전자공학부 8

17 Lab.10-2: EventHandler.java class EventHandler public static void main(string[] args) JFrame frm=new JFrame("First Swing"); frm.setbounds(120, 120, 400, 100); frm.setlayout(new FlowLayout()); JButton btn1=new JButton("My Button"); MouseListener listener=new MouseEventHandler(); btn1.addmouselistener(listener); JButton btn2=new JButton("Your Button"); btn2.addmouselistener(listener); JButton btn3=new JButton("Our Button"); btn3.addmouselistener(listener); frm.add(btn1); frm.add(btn2); frm.add(btn3); frm.setvisible(true); 18 건국대학교전자공학부 9

19 Layout Manager ( 배치관리자 ) 컨테이너와배치개념 20 컨테이너 (Container) 1. 컨테이너마다하나의배치관리자가존재하며, 삽입되는모든컴포넌트의위치와크기를결정하고적절히배치한다. 이쪽으로가세요. 2. 컨테이너의크기가변하면내부컴포넌트들의위치와크기를모두재조절하고재배치한다. 배치관리자 (Layout Manager) 컴포넌트 (Component) 건국대학교전자공학부 10

배치관리자대표유형 4 가지 21 java.awt 패키지에구현되어있음 FlowLayout BorderLayout 이쪽으로가세요. 이쪽으로가세요. GridLayout CardLayout 이쪽으로가세요. 이쪽으로가세요. 22 건국대학교전자공학부 11

23 Lab.10-3: FlowLayoutManager.java 주어진 Java Program 을실행시켜보고결과를보이시오. 메소드 getpreferr edsize() 에대해간단히설명. (Optional) 프레임창우상단 x 클릭 3 초후프레임창이다시나타나도록수정. import java.awt.*; import javax.swing.*; class FlowLayoutManager public static void main(string[] args) JFrame frm=new JFrame("FlowLayout Test"); frm.setbounds(120, 120, 400, 200); frm.setlayout(new FlowLayout()); frm.add(new JButton("Hi!")); frm.add(new JButton("I like Swing")); frm.add(new JButton("I am a button")); frm.add(new LargeButton("Hi!")); frm.add(new LargeButton("I like Swing")); frm.add(new LargeButton("I am a button")); frm.setvisible(true); (cont d on next slide) 24 Lab.10-3: FlowLayoutManager.java class LargeButton extends JButton public LargeButton(String str) super(str); public Dimension getpreferredsize() Dimension largebtmsz =new Dimension( super.getpreferredsize().width+30, super.getpreferredsize().height+15 ); return largebtmsz; 건국대학교전자공학부 12

25 26 건국대학교전자공학부 13

27 28 Lab.10-4: MultiLayoutManager.java 주어진 Java Program 을실행시켜보고결과를보이시오. 그리고프로그램을분석. 프레임의크기를변경해보고결과기술. Container, Component 클래스의차이점을기술. import java.awt.*; import javax.swing.*; class MultiLayoutManager public static void main(string[] args) JFrame frm=new JFrame("Multi Layout Manager"); frm.setbounds(120, 120, 250, 150); frm.setlayout(new BorderLayout()); JButton btm1=new JButton("B1"); JButton btm2=new JButton("B2"); JButton btm3=new JButton("B3"); JButton btm4=new JButton("B4"); JButton btm5=new JButton("B5"); JButton btm6=new JButton("B6"); JButton btm7=new JButton("B7"); JButton btm8=new JButton("B8"); JButton btm9=new JButton("B9"); JButton btm10=new JButton("B10"); (cont d on next slide) 건국대학교전자공학부 14

29 Lab.10-4: MultiLayoutManager.java JPanel panel1=new JPanel(); panel1.setlayout(new FlowLayout()); panel1.add(btm1); panel1.add(btm2); panel1.add(btm3); panel1.add(btm4); JPanel panel2=new JPanel(); panel2.setlayout(new GridLayout(2, 3, 2, 2)); panel2.add(btm5); panel2.add(btm6); panel2.add(btm7); panel2.add(btm8); panel2.add(btm9); panel2.add(btm10); frm.add(panel1, BorderLayout.NORTH); frm.add(panel2, BorderLayout.CENTER); frm.setvisible(true); 30 Events and Event Listener 건국대학교전자공학부 15

31 32 Lab.10-5: JButtonMouseEvent.java 주어진 Java Program 을실행시켜보고결과를분석하시오. 결과를통해마우스이벤트와액션이벤트의차이점을관찰하고설명. import java.awt.*; import javax.swing.*; import java.awt.event.*; class MouseEventHandler implements MouseListener public void mouseclicked(mouseevent e) System.out.println(" 마우스버튼눌렸다풀림 "); public void mouseentered(mouseevent e) public void mouseexited(mouseevent e) public void mousepressed(mouseevent e) public void mousereleased(mouseevent e) class JButtonMouseEvent public static void main(string[] args) (cont d on next slide) 건국대학교전자공학부 16

33 Lab.10-5: JButtonMouseEvent.java JFrame frm=new JFrame("JButton Disable"); frm.setbounds(120, 120, 250, 150); frm.setlayout(new FlowLayout()); MouseListener mousehandler=new MouseEventHandler(); JButton btn1=new JButton("Button One"); btn1.addmouselistener(mousehandler); JButton btn2=new JButton("Button Two"); btn2.addmouselistener(mousehandler); frm.add(btn1); frm.add(btn2); btn1.setenabled(false); frm.setvisible(true); 34 건국대학교전자공학부 17

35 Lab.10-6: JButtonActionEvent.java 주어진 Java Program 을실행시켜보고결과를분석하시오. 결과를통해마우스이벤트와액션이벤트의차이점을관찰하고설명. import java.awt.*; import javax.swing.*; import java.awt.event.*; class ActionEventHandler implements ActionListener public void actionperformed(actionevent e) System.out.println(e.getActionCommand()); class JButtonActionEvent public static void main(string[] args) JFrame frm=new JFrame("JButton Disable"); frm.setbounds(120, 120, 250, 150); frm.setlayout(new FlowLayout()); JButton btn1=new JButton("Button One"); JButton btn2=new JButton("Button Two"); ActionListener actionhandler=new ActionEventHandler(); btn1.addactionlistener(actionhandler); btn2.addactionlistener(actionhandler); frm.add(btn1); frm.add(btn2); btn1.setenabled(false); frm.setvisible(true); 36 건국대학교전자공학부 18

37 38 건국대학교전자공학부 19

39 40 Lab.10-7: MouseMotionEvent.java import javax.swing.*; import java.awt.event.*; 주어진 Java Program 을실행시켜보고결과를분석. X 클릭시 dispose() 호출을통하여프로그램종료가되도록수정. class MouseMotionHandler implements MouseMotionListener public void mousedragged(mouseevent e) System.out.printf("Drag [%d %d] \n", e.getx(), e.gety()); public void mousemoved(mouseevent e) System.out.printf("Move [%d %d] \n", e.getx(), e.gety()); class MouseMotionEvent public static void main(string[] args) throws Exception JFrame frm=new JFrame("Mouse Motion"); frm.setbounds(120, 120, 250, 150); frm.addmousemotionlistener(new MouseMotionHandler()); frm.setvisible(true); frm.setdefaultcloseoperation(windowconstants.dispose_on_close); 건국대학교전자공학부 20

41 42 건국대학교전자공학부 21

43 Lab.10-8: AdapterAnonymousHandling.java 주어진 Java Program 을실행시켜보고결과를보이시오. 그리고프로그램을분석하시오. 익명클래스에대해설명하고어떤경우에유용한지설명하시오. import javax.swing.*; import java.awt.event.*; class AdapterAnonymousHandling public static void main(string[] args) JFrame frm=new JFrame("Mouse Motion"); frm.setbounds(120, 120, 250, 150); frm.addmouselistener( new MouseAdapter() public void mouseclicked(mouseevent e) System.out.println(" 마우스버튼눌렸다풀림 "); ); E); frm.setvisible(true); frm.setdefaultcloseoperation(windowconstants.dispose_on_clos 건국대학교전자공학부 22