Java의 이벤트 처리 [ Last update: March 8, 2003. ] |
Java를 이용하기 쉬운 이유중의 하나는 버튼 및 마우스등의 풍부한 GUI (Graphical User's Interface) 부품이 준비되어 있기 때문이다. 이러한 부품들을 사용하여 복잡한 계산제어를 할 수 있다. GUI 부품에 대한 처리를 이벤트 처리 라고도 한다. 이벤트 처리에는, 아래 표에 나타낸 각종 GUI 부품에 대하여 인터페이스(이벤트 리스너)를 실장 (implements) 한 뒤, 초기화 방법 init( ) 으로 GUI 부품을 장착하고, 개개의 GUI 부품에 대응하는 메소드를 사용하여 그 처리를 규정하고 있다.(복수의 GUI 부품을 병용할 수도 있다.) |
||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
이벤트 처리 프로그램 예 복수의 GUI 부품을 이용할 경우, 장착하는 순으로 횡 1행에, 자동적으로 실장된다.(디폴트의 레이아웃 매니져 FlowLayout 사용의 경우. 의도적으로 배치시키고 싶은 경우는 별도의 레이아웃 매니져를 사용할 필요가 있다.) |
1. 초이스 메뉴를 작성하고 사용자로부터 하나의 항목을 선택시킬 때 사용하고, ItemListener 인터페이스를 실장한다. 키보드 입력일 경우는 에러 처리가 필요하다. 또한, 사용방법을 잘 몰라도 시행착오적으로 사용할 수 있어 좋다. 초이스 클래스의 메소드에는 다음과 같은 것들이 있다. ▲ addItem(String str); item 으로 지정한 문자열을 선택항목으로 추가. ▲ getSeclectedItem(); 선택된 항목의 문자열을 되돌려 준다. ▲ getSelectedIndex(); 선택항목의 번호(최초항목은 0)을 되돌려준다. ▲ select(String str) or select(int i); str 또는 i 로 지정항목을 선택. |
Source |
2. 버튼, 마우스 버튼에는 ActionListener 를, 마우스에는 MouseListener, MouseMotionListener 의 언터페이스를 실장하고, 각각의 기능을 해당하는 메소드로 규정. 마우스에는 여러 가지 기능이 있고, 그 일부를 사용할 경우에도 사용하지 않는 마우스의 메소드를 등록시켜 둘 필요가 있다. 오른편의 Applet는 메뉴로부터 "Line"(직선을 그림), "Rect"(장방형을 그림), "Oval"(타원을 그림), "Draw"(마우스로 드럭그해서 그 궤적을 그림)를 선택하여 도형을 그린다. 또한, 버튼으로 화면 소거하는 기능을 보여준다. |
Source |
3. Check Box, Text Field 체크박스는 On, Off의 스위치와 같은 두 개의 상태를 가지는 버튼이다. 몇 개의 버튼을 그룹화 시켜 사용하는 것도 가능하다. 그룹화시켰을 경우, 하나의 버튼을 On으로 한다면 나머지는 자동적으로 Off가 된다. On,Off의 상태는 getState( ) 로 조사한다. 텍스트 필드는 수자나 문자드의 입출력으로 사용할 수 있다. 텍스트 문자를 취득하기 위해서는 getText( ) 를 사용. 필드의 문자는 문자형 데이터로 보기 때문에 수자로 변환시키기 위해서 변수변환을 수행하면 된다. ▲ 문자열을 int형으로:Integer.parseInt(문자열) ▲ 문자열을 float형으로:Float.valueOf(문자열).floatValue() ▲ 문자열을 double형으로:Double.valueOf(문자열).doubleValue() |
Source |
4. 스크롤바 ▲수치를 연속적으로 변화시켜 가면서 프로그램에 반영시킬 경우 사용. 스크롤바의 생성은 다음과 같이 한다. ▲Scrollbar (종횡, 초기치, 슬라이더의 크기, 최소값, 최대값) ▲종횡의 지정은 Scrollbar.HORIZONTAL, Scrollbar.VERTICAL로 지정한다. 슬라이더 위치는 getValue( ) 로 취득, setValue(int형 값) 으로 위치를 설정. ▲ setUnitIncrement(값):좌우의 버튼을 누르면 단위의 값이 변한다. 이 값을 바꾸기 원할 때 사용. ▲ setBlockIncrement(값):슬라이더의 이동부분을 클릭하면, 10씩 값이 변한다. 이 값을 바꿀 경우 사용. 일반적으로 생성된 스크롤바가 작아서 조작하기 힘들 경우는 별도의 레이아웃 매니져를 사용하면 된다. |
Source |