Eclipse 개발환경에서 WindowBuilder 를이용한 Java 프로그램개발 이예는 Java 프로그램의기초를이해하고있는사람을대상으로 Embedded Microcomputer 를이용한제어시스템을 PC 에서 Serial 통신으로제어 (Graphical User Interface (GUI) 환경에서 ) 하는프로그램개발예를설명한다. WindowBuilder: GUI 환경에서 Java 프로그램을개발하도록지원하는 Tool 1. 새 Porject 개발환경설정과 New Project 만들기 A. 새 Project 만들기 i. New -> Project -> Java Project -> Project name: JavaSerialCommBasic -> Finish B. WindowBuilder(WB) 환경 (GUI) 을이용프로그래밍하기위한새 Class 만들기 i. New -> Other -> WindowBuilder -> Swing Designer -> JFrame -> Name: jframe name( 예 : GUI) -> Finish ii. 위의결과 JFrame 으로부터상속된 GUI class(gui.java) 를 WindowBuilder 가자동으로생성한다. 생성된 Source Code 를확인하고,
iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.
iv. AVR System 과 Serial 통신을하기위한 Library (RXTXcomm.jar) 설치하기 1. Project Explorer 에서 Project 를 Right-click 하고 Properties 를선택한다. 2. Java Build Path -> Libraries 를선택하고 Add External JARs button 을 Click 한다. 3. RXTXcomm.jar 화일이위치하는폴더를 Navigate 하여 RXTXcomm.jar 를선택하고 -> 열기 -> OK 를 Click 한다.
4. Package Explorer Window -> Referenced Libraries 에서 RXTXcomm.jar 이설치되었는지확인한다. 5. Package Explorer Window 에서 RXTXcomm.jar 을 Right-click 하고 Properties 를선택한다. 6. Native Library 를선택하고 Location path: 상자에 rxtxserial.dll 이있는폴더 (Program Files\Java\jre7\bin) 를검색하여, Apply 를 Click 하고 Ok 를 Click 한다. 2. WindowBuilder GUI 환경을이용하여 Serial Communication 프로그램을작성예
이예에서는위에서설치한 RXTX Java Communication API 를이용하여직렬통신을구현한다. 프로그램소스는별도의 zip file 를참고할것. A. GUI class 프로그래밍 i. WindowBuilder(WB) GUI Window Layout 설정 1. WB GUI Design Window 에서 Right-click -> Set layout -> GroupLayout 를 Click ii. JLabel 설치 1. GUI 프로그래밍환경의 Component Window 에서 JLabel 을 Click 하여선택하고 Frame Window 내에적당한위치로 Drag 하여설치한다. 2. Properties Window 에서 Variable( 예 : jlabelselectcomport), text( 예 : Select the COM Port), font( 예 : Arial 14 Bold), foreground( 예 : BLUE) 등을아래예를참고하여편집한다. iii. JComboBox 설치 1. GUI 프로그래밍환경의 Component Window 에서 JComboBox 을 Click 하여선택하고 Frame Window 내에적당한위치로 Drag 하여설치한다. 2. Properties Window 에서 Variable( 예 : cboxports), font( 예 : Arial 12) 등을편집한다. 3. JComboBox 생성문을다른함수에서참조할수있도록속성을 public 으로변경하고 GUI class 의멤버변수선언위치로이동한다. iv. Serial Communication Port Control Button( JToggleButton) 설치 1. GUI 프로그래밍환경의 Component Window 에서 JToggleButton 을 Click 하여선택하고 Frame Window 내에적당한위치로 Drag 하여설치한다. 2. Properties Window 에서 Variable( 예 : tglbtncondisnect), text( 예 : Connect),
font( 예 : Arial 12 Bold) 등을편집한다. 3. Event Handler A. JToggleButton 을선택하고 -> Right-click -> Add event handler -> action -> actionperformed 을 Click 하면 JToggleButton ActionListener Code 가자동으로삽입되고, 삽입된 source code 위치에커서가위치된다. 이부분을아래예와같이편집한다. B. JToggleButton 생성문을다른함수에서참조할수있도록속성을 public 으로변경하고 GUI class 의멤버변수선언위치로이동한다. C. JToggleButton ActionListener Codeing 예 4. GUI Class 생성자내에서 Communicator Class 의 searchforports() 함수를실행하도록한다. Code 예 : communicator.searchforports(); v. JScrollPane 과 JTextArea 설치 1. Textarea 를설치할위치에먼저 JScrollPane 을설치한다. 2. GUI 프로그래밍환경의 Containers Window 에서 JScrollPane 을 Click 하여선택하고 Frame Window 내에적당한위치로 Drag 하여설치한다. A. Properties Window 에서 Variable( 예 : scrollpane), horizontalscrollbarpolicy, verticalscrollbarpolicy 등을편집한다. 3. JScrollPane 에 JTextArea 를설치한다. A. Components Window 에서 JTextArea 을 Click 하여선택하고 JScrollPane 에 Drag 하여설치한다.
B. Properties Window 에서 Variable( 예 : textareatxtlog) 등을편집한다 C. JTextArea 생성문을다른함수에서참조할수있도록속성을 public 으로변경하고 GUI class 의멤버변수선언위치로이동한다. Coding 예 : public JTextArea textareatxtlog = new JTextArea(); 4. JTextArea 에 Typed 되는문자의 echo 를 Turn off 하기 Serial Port 를이용하여제어대상과통신 ( 제어명령을보내고, 결과를수신한다.) 하는경우 Text Area 에 Typed 된문자가아닌, Serial Port 로부터수신되는문자를표시하여야하는경우가대부분이다. 이경우 Text Area 에 Typed 문자가자동으로표시되는것을막아야한다. A. JTextArea 의 processevent(awtevent) method 를아래예와같이 Overide 한다. Coding 예 5. JTextArea 에 Key Event Handler 연결하기 JTextArea 에입력되는문자를바로 JTextArea 에출력 (echo) 하는경우에는아래와같이 JTextArea keytyped Event handler 를사용한다. A. JTextArea -> Add Event Handler -> key -> keytyped Coding 예 : public void keytyped(keyevent arg0) { char c; c = arg0.getkeychar(); communicator.rxtxcomoutchar(c); } vi. TextArea Clear All Button ( JButton) 설치 1. GUI 프로그래밍환경의 Component Window 에서 JButton 을 Click 하여선택하고 Frame Window 내에적당한위치로 Drag 하여설치한다. 2. Properties Window 에서 Variable( 예 : btnclearall), text( 예 : Clear All), font( 예 : Arial 12 Bold) 등을편집한다.
3. Event Handler A. JButton 을선택하고 -> Right-click -> Add event handler -> action - > actionperformed 을 Click 하면 JButton ActionListener Code 가자동으로삽입되고, 삽입된 source code 위치에커서가위치된다. 이부분을아래예와같이편집한다. B. JButton ActionListener Codeing 예 btnclearall.addactionlistener(new ActionListener() { }); B. Communicator Class 프로그래밍 i. Communicator Class 만들기 public void actionperformed(actionevent e) { } communicator.logtextclear(); 1. New -> Class -> Java Class Window 내의 Name Field 에 Class Name( 예 : Communicator) 을입력하고 -> Finish Button 을 Click 한다. 2. Communicator class(communicator.java) 가생성되고 Display 된다. 3. Communicator class 에홈페이지에있는 JavaSerialCommBasic Project 예에있는 Communicator.java File 의내용을복사한다. 4. GUI Class 에서 Communicator class 를참조할수있게하기위하여 GUI Class 에아래 Code 를삽입한다. Communicator communicator = new Communicator(this); 3. AVR Microcontroller 프로그래밍홈페이지 (http://chowk.khu.ac.kr) AVR 을참고할것. 4. Window 환경에서실행할수있는.exe File 만들기 Eclipse 개발환경에서 Java Programming 을참고할것.