ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [6주][5일][3~4th] JAVA: awt 실습(마지막): 이벤트 처리 실습
    N스크린하이브리드앱과정/JAVA 2013. 8. 23. 13:51

    AWT 계층 구조

    AWT를 코딩하다 보면 알겠지만, 기본적인 계층 구조는 먼저 한번 훑어보고 가도록 하자. 머릿속에 한번 그림을 찍어 놓으면 나중에 도움이 될지도 모르니 말이다.

    - 라벨은 폼에 글자 형태로 출력되는 것으로, 텍스트 상자가 체크박스 등의 전체 이름을 나타내는 의

       미로 사용한다. 그래서 프레임에 따로 나와있는 것이다.

    - Button과 List는 Panel에 가지런히~ 붙여주는 개념으로 생각하면 된다.

     

    ☆ 실습(1) : 리스너 클래스

    결과

     

     

     - Button 인스턴스를 생성하고, add로 버튼을 삽입시킨다.

     - 버튼을 누르면 "눌렀다" 라는 결과가 나오도록 하는 "액션 리스너" 기능을 implements하여 프레임에

        연결시켰다.

     - 윈도우 창이 열리거나 닫히는 등 윈도우 창에 관한 이벤트를 실행하는 "윈도우 리스너"도

        implements하여 프레임에 같이 연결시켜준다.

     

     - 리스너 클래스를 활용하는, 뒤에 나올 개념의 1~5단계 중에서 1단계 활용법이며, 윈도우 리스너의 기능이 대부분이고 액션 리스너는 맨 밑에 하나(actionPerformed) 뿐이다.

     

     

     

    ☆ 실습(2) : 마우스 리스너

     - 메인 클래스에서 생성자를 하나 만들었다. 12번줄(addMouseListener(this))을 해석하면, 마우스리스너 기능이 실행되도록 하는 것인데 쫌 생소한 표현이다. 메인 클래스에서 Frame 클래스와 마우스 리스너를 implements 했기 때문에 앞에 클래스도 붙지 않고 바로 저런 표현이 가능한 것이다.

     

    - 메인 메서드에서 임시객체로 1번만 사용하고 버릴 수 있다.

     

    결과

     

     

    ☆ 실습(3) : 키 리스너, KeyListener

     - 키 리스너를 활용하면 키보드를 눌렀을 때나 뗐을때, 누른 키가 뭔지, 누른 키의 코드가 뭔지

        등을 알 수 있다.

     - 여기서는 그 이벤트가 동작할 때 결과를 system.out.println 출력문으로 보여주도록 하였다.

     

    결과

    키 코드는 아스키 코드로 구성되었는데, 값이 나오질 않는다. 이 오류는 선생님께 여쭤보고 이유를 알아내어 다시 수정하도록 하겠다.

     

     

    ☆ 실습(4) : 라벨과 텍스트상자 만들기

     - TextField(10) : 텍스트 상자를 만든다(10자 크기).

     - Label("출력값", "정렬") : 라벨을 만든다.

     - setSize : 윈도우 창의 사이즈를 설정(픽셀)

     - setLayout : 레이아웃 설정(프레임 안에 한번 쏴주는거)

     - FlowLayout : 레이아웃 종류 설정(기본 레이아웃)

     

    결과

     

     

    ☆ 실습(5) : 체크박스와 라디오버튼 만들기

     - Checkbox : 체크박스 클래스

     - CheckboxGroup : 체크박스를 그룹으로 묶어주는 클래스. 라디오버튼으로 변신. 

     

    결과

     

     

    ☆ 실습(6) : GridLayout (행과 열로 나누어진 레이아웃)

     - 계산기 같은 것을 만들 때, 버튼을 가지런히 정렬하기 위한 레이아웃이 필요하다. 그래서 나온 것이

       GridLayout이다.

     

    결과

     

     

    ☆ 실습(7) : List와 중복 선택이 가능한 리스트

     - List(6,true) : true는 다중선택 가능, false는 하나만 선택 가능

     

    결과

Designed by Tistory.