1. GUI
    1. 사용자가 편리하게 입출력 할 수 있도록 그래픽으로 화면을 구성하고, 마우스나 키보드로 입력 받을 수 있도록 지원하는 사용자 인터페이스
  2. AWT와 Swing 패키지
    1. AWT(Abstract Windowing Toolkit) 패키지
      1. 자바가 처음 나왔을 때부터 배포된 GUI 패키지, 최근에는 거의 사용하지 않음
      2. AWT 컴포넌트는 중량 컴포넌트(heavy weight component)
        1. AWT 컴포넌트의 그리기는 운영체제에 의해 이루어지며, 운영체제에 의 자원을 많이 소모하고 부담을 줌
        2. 운영체제가 직접 그리기 때문에 속도는 빠름
    2. Swing 패키지
      1. AWT 기술을 기반으로 작성된 자바 라이브러리
      2. 모든 AWT 기능 + 추가된 풍부하고 화려한 고급 컴포넌트
      3. AWT 컴포넌트를 모두 스윙으로 재작성. AWT 컴포넌트 이름 앞에 J자를 덧붙임
      4. 순수 자바 언어로 구현
      5. 스윙 컴포넌트는 경량 컴포넌트(light weight component)
        1. 스윙 컴포넌트는 운영체제의 도움을 받지 않고 직접 그리기 때문에 운영체제에 부담주지 않음
      6. 현재 자바의 GUI로 사용됨
  3. Swing Component
    1. JButton
    2. JLabel
    3. JTextField
    4. JCheckBox
    5. JRadioButton
    6. JTextArea
    7. JComboBox
    8. JSlider
    9. JPasswordField
    10. JSpinner
    11. JList
    12. JProgressBar
    13. JToolTip
    14. JMenu
    15. JDialog
    16. JApplet
    17. JScrollPane
    18. JFrame
    19. JTable
    20. JTree
    21. JEditorPane
    22. JTextPane
    23. JToolBar
    24. JTabbedPane
    25. JSplitPane
  4. 컨테이너
    1. 다른 컴포넌트를 포함할 수 있는 GUI 컴포넌트
      1. java.awt.Container를 상속받음
    2. 다른 컨테이너에 포함될 수 있음
      1. AWT 컨테이너 : Panel, Frame, Applet, Dialog, Window
      2. Swing 컨테이너 : JPanel JFrame, JApplet, JDialog, JWindow
  5. 컴포넌트
    1. 컨테이너에 포함되어야 화면에 출력될 수 있는 GUI 객체
    2. 다른 컴포넌트를 포함할 수 없는 순수 컴포넌트
    3. 모든 GUI 컴포넌트가 상속받는 클래스 : java.awt.Component
    4. 스윙 컴포넌트가 상속받는 클래스 : javax.swing.JComponent
  6. 최상위 컨테이너
    1. 다른 컨테이너에 포함되지 않고도 화면에 출력되며 독립적으로 존재 가능한 컨테이너
    2. 스스로 화면에 자신을 출력하는 컨테이너 : JFrame, JDialog, JApplet
  7. 300×300 크기의 스윙 프레임 만들기
  8. 3개의 버튼 컴포넌트를 가진 스윙 프레임 만들기
  9. 배치 관리자 대표 유형 4 가지
    1. FlowLayout 배치관리자
      1. 컴포넌트가 삽입되는 순서대로 왼쪽에서 오른쪽으로 배치
      2. 배치할 공간이 없으면 아래로 내려와서 반복한다.
    2. BorderLayout 배치관리자
      1. 컨테이너의 공간을 동(EAST), 서(WEST), 남(SOUTH), 북(NORTH), 중앙
      2. (CENTER)의 5개 영역으로 나눔
      3. 5개 영역 중 응용프로그램에서 지정한 영역에 컴포넌트 배치
    3. GridLayout 배치관리자
      1. 컨테이너를 프로그램에서 설정한 동일한 크기의 2차원 격자로 나눔
      2. 컴포넌트는 삽입 순서대로 좌에서 우로, 다시 위에서 아래로 배치
    4. CardLayout
      1. 컨테이너의 공간에 카드를 쌓아 놓은 듯이 컴포넌트를 포개어 배치
    5. 컨테이너의 디폴트 배치관리자
      1. 컨테이너 생성시 자동으로 생성되는 배치관리자
error: Content is protected !!