관리 메뉴

오버플로

[Java] JFC / Swing / Component 본문

Java

[Java] JFC / Swing / Component

NACO 2021. 8. 15. 22:12

 1. JFC (Java Foundation Class) 

- Window용 Application(eclipse, 알집, 알약, 카톡,,,,,)을 작성할 때 사용 (디자인용)

- AWT (Abstract Window Toolkit)와Swing을 제공함

- java만 가지고는 “.exe (Windows용 실행파일)”인 파일을 제작할 수 없음

- 설치되더라도 JDK는 별도로 존재해야 함(프로그램을 여러 개 설치해야 함)

 

 2. JFC – Swing 

- AWT 차후 버전

- 장점 : 가벼운 컴포넌트(빠르다)

          에러가 적다

          OS가 달라도 동일한 모양의 Component를 제공

          이미지 다루기가 쉬움

- javax.swing package에서 Component를 제공함 (JComponenet Class와 그 상속 클래스들)

   > swing은 component 기능을 나타내는 class 앞에 J가 붙어있음

- Swing은 AWT와 호환 가능함

- event 처리에 사용되는 interface와 class는 java.awt.event 패키지에 존재하는 것을 같이 사용함

 

작성법)

1) Window Component(JFrame)를 상속 (is a 관계)

2) 일반 컴포넌트를 생성 (사용자가 사용할 기능 제공)
           : JButton jbtn = new JButton(“버튼”); 

3) 일반 컴포넌트를 배치 (기능을 잘 사용할 수 있도록 적절한 위치에 놓음 – UI설계)

: add(2)에서 생성한 컴포넌트명) // Container 클래스에 존재 => 코드의 재사용성

4) window의 크기(보여줄 크기)를 설정

: setSize(int width, int height) // Window 클래스 => 코드의 재사용성

5) 사용자에게 보여주는 기능을 가진 method 호출 (가시화)

: setVisible(true) // Window 클래스 => 코드의 재사용성

 

** 닫기 버튼만 클릭하면 instance가 사라지지 않으므로 하기 method 추가 필요
=> 윈도우 종료 이벤트 처리
=> instance 삭제 : setDefaultCloseOperatinon(JFrame.EXIT_ON_CLOSE)

 

3. Component 

- 최소의 기능을 가진 단위

- Component Programming : 기능을 가진 최소의 디자인 단위를 사용하여 프로그램을 제작하는 것

 

- Component 종류 :

  • Visual Component : 눈에 보이는 Component
  • Non-Visual Component : 눈에 보이지 않는 Component

- Visual Component 기능상의 분류 :

  • Window Component : 사용자에게 보여주는 일
    - Container Component 또는 Component를 가지고 사용자에게 보여주는 일을 하는 Component
    - Window, Frame, Dialog, FileDialog
  • Container Component : 배치하는 일
    - Container Component 또는 일반 Component를 배치하는 일
    - Panel, ScrollPane
  • Component : 기능
    - Button, Lable, TextField, TextArea, CheckBox, RadioButton, Choice(ComboBox), Menu, MenuItem, MenuBar

'Java' 카테고리의 다른 글

[Java] MVC Pattern  (0) 2021.08.18
[Java] Layout Manager (배치관리자)  (0) 2021.08.17
[Java] Stack / autoboxing / unboxing  (0) 2021.08.12
[Java] JCF - Set, Map  (0) 2021.08.11
[Java] JCF - List / Generic  (0) 2021.08.10
Comments