ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [21회차-③~22회차] JAVA(GUI-awt)
    JAVA 2021. 4. 21. 21:32

    강의명 : 오픈프레임워크 활용 디지털융합 SW엔지니어 양성 과정

    강의 날짜 : 21.04.20 ~ 21.04.21

     

     

    [10회차] JAVA (그래픽)

    강의명 : 오픈프레임워크 활용 디지털융합 SW엔지니어 양성 과정 강의 날짜 : 21.04.05 //오목게임 package april5th; import java.awt.Font; import java.awt.GridLayout; import java.awt.event.ActionEvent; im..

    crystal93.tistory.com

     

    <GUI>

    awt swing
    초기 GUI
    운영체제가 사용하는 자원 사용
    플랫폼 의존적
    컴포넌트 용량이 큼
    컴포넌트의 개수가 적음
    개선된 GUI
    컴포넌트를 자바에서 제공
    플랫폼 독자적
    컴포넌트 용량이 가벼움
    컴포넌트 개수가 많음

     

     

    1. 이벤트

     

    이벤트는 그 시점을 파악하는 것이 중요하다.

    클릭의 경우는 버튼을 누르는 시점이 아니라 버튼을 누른 후(press) 떼는 행동(release)까지가 클릭이다.

    또한 해당 영역 안에서 이루어 져야 클릭으로 인식되므로 그 시점을 파악하는 것이 핵심이다.

     

     

    2. 컴포넌트

     

    프레임(Frame) 안에 부착될 수 있는 것들을 컴포넌트라고 한다.

     

    컴포넌트 설명
    Frame 실행창
    default Layout : BorderLayout
    Panel 컴포넌트들이 부착되는 합판의 개념
    default Layout : FlowLayout
    ScrollPane 가운데는 투명하고 아래쪽, 오른쪽에 스크롤
    Button 버튼
    Choice 옆의 삼각형을 누르면 리스트가 보이고 그 중 선택
    default는 가장 처음에 있는 값
    List 리스트 
    List(크기) : 단일 선택
    List(크기 , true) : 다중 선택 
    Label 텍스트가 써져있는 라벨
    TextField 한 줄 입력란
    TextArea 여러 줄의 글을 작성할 수 있는 영역
    범위를 넘어가면 자동으로 스크롤 생성
    Checkbox 다중 선택
    CheckboxGroup + Checkbox 단일 선택 라디오 버튼.
    여러 Checkbox를 하나의 CheckboxGroup으로 묶어준다.
    Checkbox(체크박스 객체명, 그룹 객체명, boolean)
    FileDialog 파일 관련 대화상자
    객체가 경로에 대한 정보를 저장하고, 그것으로 나중에 FileReader 등으로 읽어온다.
    FileReader(프레임,타이틀,목적)

     

     

    3. 레이아웃

     

    레이아웃 설명
    FlowLayout 물 흐르듯 순서대로 배치.
    창 사이즈에 따라 배열이 달라진다.
    default 위치는 중앙이다.
    패널의 기본 레이아웃이다.
    BorderLayout North, South, West, East, Center 다섯 개의 영역으로 나뉨
    프레임의 기본 레이아웃이다.
    GridLayout 바둑판 모양.
    GridLayout(행,열)
    만약 데이터의 값이 많은데 영역이 부족하면 행의 수를 가져가고 임의로 열 수를 늘린다.
    (데이터 위주!)
    CardLayout 명암 카드같은 것을 포개놓은 형태
    CardLayout(수평 간격, 수직 간격)

     

     프레임과 패널은 기본 레이아웃이 있어서 레이아웃을 설정하지 않아도 무관하지만,

    만약 레이아웃을 사용하지 않고 직접 위치를 주는 경우는 setLayout=null로 준 후 

    setLocation(x좌표, y좌표)으로 직접 설정해주어야 한다.

     

     

    4. 이벤트 관련 인터페이스와 추상 클래스

     

    인터페이스를 상속받으면 모두 재정의 해주어야 하지만, 추상 클래스는 선택하여 재정의가 가능하다.

    그러므로 어느 것을 상속받을 것인지 어느 메소드를 재정의할 것인지 파악하는 것이 중요하다.

     

    인터페이스 설명
    WindowListener 창 관련 이벤트
    MouseListener 마우스 이벤트
    MouseMotionListener 마우스 움직임 이벤트
    ActionListener 행동 이벤트
    KeyListener 키보드 이벤트
    ItemListener 아이템 선택 이벤트

     

     

    추상클래스 설명
    WindowAdapter 창 관련 이벤트
    MouseAdapter 마우스 이벤트
    MouseMotionAdapter 마우스 움직임 이벤트
    KeyAdapter 키보드 이벤트

     

     

    이벤트 감지 객체 설명
    WindowEvent 창의 이벤트 감지
    MouseEvent 마우스 관련 이벤트 감지
    ActionEvent 행동 감지
    KeyEvent 키보드 이벤트 감지
    ItemEvent 아이템 이벤트 감지

     

     

    * ActionListener는 actionperformed라는 메소드 하나밖에 없으므로 추상 클래스가 존재하지 않는다.

    다음은 ActionEvent의 actionperformed가 호출되는 경우이다.

     

    ① Button 클릭

    ② TextField에서 enter키를 쳤을 때

    ③ Menu Item을 클릭했을 때

    ④ List에서 더블 클릭으로  item을 선택했을 때

     

    * ItemListener도 메소드가 itemStateChanged 하나만 존재하여 추상 클래스가 없다.

    선택해서 상태가 바뀌면 감지되는 이벤트이다.

    Action Perfomed는 해당 메뉴를 그저 선택하면 이벤트가 일어난 것이지만,

    itemStateChanged는 체크 박스나 라디오 버튼처럼 선택했을 때 상태가 바뀌면 이벤트가 일어난 것이다.

     

     

    * import도 상속의 일종

     

    상위를 상속받으면 먼저 그 상위에 대하여 복사를 해오는 것이고 메모리를 할당받게 된다.

    import를 받아오면 그 패키지, 클래스에 대하여 메모리를 할당받는 것이므로 

    import역시 상속의 일종이라고 볼 수 있다.

     

    또한 객체를 생성할 때 메모리를 할당받는 것처럼

    상속도 상위의 메모리를 할당받아오므로 상속도 객체 생성의 일종이라고 볼 수 있다.

     

     

     

     

    'JAVA' 카테고리의 다른 글

    [23회차] JAVA (swing)  (0) 2021.04.22
    [21회차-②] JAVA (네트워크)  (0) 2021.04.21
    [21회차-①] JAVA (File)  (0) 2021.04.21
    [20회차-③] JAVA (Stream)  (0) 2021.04.20
    [20회차-②] JAVA (예외처리)  (0) 2021.04.20
Designed by Tistory.