EAI프로젝트나 운영을 하다보면 필요한 프로그램을 웹으로 만들어서 사용했었는데 지인분이 자바 스윙(Swing)으로 만들어서 사용하는 모습을 보니 이런 방법도 괜찮아보여 정리하게 되었음
스윙이란?
- JAVA에서 그래픽 사용자 인터페이스(graphical user interface, GUI)를 만들수 있는 기능
- Swing은 javax.swing패키지를 사용
- JDK에서 기본으로 제공하는 개발 툴킷, java.awt패키지 사용
- AWT(Abstract Windows Toolkit)를 확장한 GUI컴포넌트
- AWT는 플랫폼에 의존하며 MVC패턴 따르지 않으며 컴퍼넌트는 무겁고 적다고함
- AWT기반이고 높은 호환성을 보여주고 있음
- 버튼,체크박스표,리스트 등 다양한 컴포넌트 제공
- M(model),V(view),C(Controller) 패턴을 따라감
- 윈도우 기반의 가볍고 플랫폼에 독립적이며 자바 파운데이션 클래스 일부분
- 창 기반 응용프로그램이며 JFC(Java Foundation Class)의 일부
- 애플리케이션 개발을 단순화 하는 GUI구성요소
- JFC의 종류로는 AWT,Java2D,Accessibility,Drag and Drop,Swing
- 구성은 J로 시작하는 클래스,컨테이너와 컴포넌트 그리고 레이아웃
- 컨테이너는 GUI애플리케이션 구축하려면 적어도 하나의 컨테이너 클래스가 필요
- 컨테이너 클래스는 패널,프레임,대화상자 유형 존재
- JFrame을 제외한 모든 요소들은 컴포넌트, 컴포넌트끼리 포함할수 없고 화면에 출력되는 객체
- JFrame,JDialog는 컨테이너, 컴포넌트를 포함할수 있음
- 레이아웃은 컴포넌트들의 위치를 자동으로 지정
스윙 개발관련 정리
- Object
- Component
- Container
- Window
- Frame
- Dialog
- Panel
- Applet
- JComponent
- JLabel
- JList
- JTable
- JComboBox
- JSlider
- JMenu
- AbstractButton
- JButton
스윙 개발관련 정리
- 기본적으로 JFrame을 상속(extends)받아야함
- 프레임(컨테이너) 만들기
setSize //프레임사이즈
컴퍼넌트의 크기를 설정
setTitle //프레임 타이틀 바 이름
super를 사용해도 타이틀명 셋팅됨
setLocationRelativeTo //프레임위치 상대적으로 지정, null값인경우 가운데로 위치
setDefaultCloseOperation //타이틀바 X버튼 눌렀을때 엑션 'EXIT_ON_CLOSE'프로세스 종료
해당 로직이 없어도 기본적으로 창은 닫힘
setVisible //창을 띄울지 여부
컴퍼넌트 표시 여부 기본적으로 false
- 프레임에 컴포넌트 추가
JButton //셋팅된 이름으로 버튼 생성
JTextField //셋팅된 길이만큼 텍스트박스 생성
add //선언된 컴퍼넌트 변수 셋팅시 화면에 보임
다른컴퍼넌트에 컴퍼넌트를 추가
- 레이아웃 지정
Border,Flow,Grid Layout을 가장 많이 사용된다고 함
setLayout //레이아웃을 선언
컴퍼넌트의 레이아웃 설정
add(컴퍼넌트 변수명,BorderLayout.EAST) //왼쪽,오른쪽,위,아래,가운데 배치
그외 .WEST/.SOUTH/.NORTH/CENTER 이 있음
setLayout(new FlowLayout(FlowLayout.RIGHT)) //일렬로 배치
setLayout(new GridLayout(3,3)) //행과 열로 배치
참고하기 좋은 사이트
Oracle Java Documentation > The Java Tutorials > Using Swing Components,Laying Out Components
따라하기 좋은 사이트
javaTpoint > Java Swing Tutorial
댓글 없음:
댓글 쓰기