2024년 2월 7일 수요일

자바 스윙(Swing)에 대한 기본정리

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

댓글 없음:

댓글 쓰기