Java의 이벤트 처리

[ Last update:   March 8, 2003. ]

 

Java를 이용하기 쉬운 이유중의 하나는 버튼 및 마우스등의 풍부한 GUI (Graphical User's Interface) 부품이 준비되어 있기 때문이다. 이러한 부품들을 사용하여 복잡한 계산제어를 할 수 있다. GUI 부품에 대한 처리를 이벤트 처리 라고도 한다.

이벤트 처리에는, 아래 표에 나타낸 각종 GUI 부품에 대하여 인터페이스(이벤트 리스너)를 실장 (implements) 한 뒤, 초기화 방법 init( ) 으로 GUI 부품을 장착하고, 개개의 GUI 부품에 대응하는 메소드를 사용하여 그 처리를 규정하고 있다.(복수의 GUI 부품을 병용할 수도 있다.)

표1 이벤트의 종류와 처리 메소드
GUI 부품메소드이벤트 리스너
 Button actionPerformed ActionListener
 Text Field
 Choice itemStateChanged ItemListener
 Check Box
 Scroll Bar adjustmentValueChanged AdjustmentListener
 Mouse button을 누름 mousePressed MouseListener
 Mouse button을 놓음 mouseReleased
 Click mouseClicked
 마우스가 윈도 내부에 mouseEntered
 마우스가 윈도 자같에 mouseExited
 마우스 드럭그 mouseDragged MouseMotionListener
 마우스 이동 mouseMoved

   이벤트 처리 프로그램 예

복수의 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