-
[21회차-③~22회차] JAVA(GUI-awt)JAVA 2021. 4. 21. 21:32
강의명 : 오픈프레임워크 활용 디지털융합 SW엔지니어 양성 과정
강의 날짜 : 21.04.20 ~ 21.04.21
<GUI>
awt swing 초기 GUI
운영체제가 사용하는 자원 사용
플랫폼 의존적
컴포넌트 용량이 큼
컴포넌트의 개수가 적음개선된 GUI
컴포넌트를 자바에서 제공
플랫폼 독자적
컴포넌트 용량이 가벼움
컴포넌트 개수가 많음1. 이벤트
이벤트는 그 시점을 파악하는 것이 중요하다.
클릭의 경우는 버튼을 누르는 시점이 아니라 버튼을 누른 후(press) 떼는 행동(release)까지가 클릭이다.
또한 해당 영역 안에서 이루어 져야 클릭으로 인식되므로 그 시점을 파악하는 것이 핵심이다.
2. 컴포넌트
프레임(Frame) 안에 부착될 수 있는 것들을 컴포넌트라고 한다.
컴포넌트 설명 Frame 실행창
default Layout : BorderLayoutPanel 컴포넌트들이 부착되는 합판의 개념
default Layout : FlowLayoutScrollPane 가운데는 투명하고 아래쪽, 오른쪽에 스크롤 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