AWT
– 여러 OS에서 제공하고 있는 그래픽 사용자 인터페이스 컴포넌트를
자바의 AWT 라이브러리를 통하여 바로 사용할 수 있도록 구현
q 컴포넌트의 확장이나 다른 형태로의 변형이 불가능
q Heavyweight Component
Swing - 코드 전체가 자바로 되어 있어서 OS에 종속되는 부분이 없다
q demp/jfc/SwingSet2/SwingSet2.html
q Look & Feel – 스윙에서의 GUI 컴포넌트를 표시하는 스타일
q LightWeight Component
q Heavyweight Component – 윈도우 창을 나타내는 최상위 컨테이너들
[Swing Component]
q JButton – 텍트스와 이미지를 나타낼 수 있는 버튼
q JCheckBox- 선택과 선택되지 않은 상태를 나타낼 때 사용하는 컴포넌트
q JCheckBoxMenuItem-체크박스 형태의 메뉴 컴포넌트
q JComboBox-여러 데이터를 나열할 때 사용하는 컴포넌트
q JDialog-다이얼로그 컨테이너
q JFrame-외부 프레임 컨테이너
q JLabel-텍스트를 나타낼 때 사용하는 컴포넌트
q JList-여러 데이터를 나열할 때 사용하는 컴포넌트
q JMenu-메뉴 컴포넌트
q JMenuBar-메뉴를 배치하는 컴포넌트
q JMenuItem-메뉴를 구성하는 컴포넌트
q JPanel-일반적으로 컴포넌트를 담을 때 사용하는 컨테이너
q JPopupMenu-팝업 형태로 나타나는 메뉴
q JRadioButton-선택과 선택되지 않은 상태를 나타낼 때 사용하는 컴포넌트
q JScrollBar-화면을 이동시키거나 값을 변경할 때 사용하는 컴포넌트
q JScrollPane-스크롤 되는 화면을 만들어주는 컨테이너
q JTextArea-여러줄 텍스트를 입력할 때 사용하는 컴포넌트
q JTextComponent-텍스트 컴포넌트의 기반이 되는 컴포넌트
q JTextField-한줄 텍스트를 입력할 때 사용하는 컴포넌트
q Jwindow-외부 창을 만드는 컨테이너
q Jcomponent – 스윙에서 사용하는 가벼운 컴포넌트의 기반이되는 컴포넌트
q JDesktopPane-여러 개의 프레임을 담을 때 사용하는 컨테이너
q JEditorPane-다양한 텍스트를 처리할 수 있는 텍스트 패인
q JInternalFrame-JDesktopPane에 들어가는 내부 프레임 컨테이너
q JLayeredPane-여러 층으로 컴포넌트를 배치할 수 있는 컨테이너
q JOptionPane-표준 다이얼로그를 만들 때 사용함
q JPasswordField-암호를 표시할 때 사용하는 텍스트 입력 컴포넌트
q JProgressBar – 진행상태를 나타낼 때 사용하는 컴포넌트
q JRootPane-스윙에서 사용하는 최상위 컨테이너
q JSeparator-구분할 때 사용하는 컴포넌트
q JSlider-슬라이더 형태로 값을 변경할 때 사용하는 컴포넌트
q JSplitPane-화면을 두 영역으로 나눌 때 사용하는 컨테이너
q JTabbedPane-탭 형식으로 여러 화면을 관리하는 컨테이너
q JTabel-테이블 컴포넌트
q JTextPane-텍스트를 처리하는 컴포넌트
q JToggleButton-JRadioButton과 JCheckBox의 기반이 되는 컴포넌트
q JToolBar-툴바를 나타내는 컨테이너
q JToolTip-툴팁을 나타내는 컴포넌트
q JTree-구조적인 데이터를 트리 형식으로 나타내주는 컴포넌트
q JViewPort-스크롤 할 수 있는 컴포넌트를 보여주는 컴포넌트
q JComponent 클래스는 AWT의 java.awt.Container를 확장한 클래스
- 다른 AWT 컴포넌트와 달리 OS 에 종속되어 있지 않은 경량 컴포넌트
q 최상위 컨테이너(Top-level Container)
- 스윙 프로그램을 작성할 때 꼭 만들어야 하는 컴포넌트로 다른 컴포넌트를 배치하기 위해 사용하는 윈도우 창을 나타낸다.
- JWindow, JFrame, JDialog, JApplet
- 다른 컨테이너의 틀 역할을 한다.
- 모든 스윙 컨테이너들은 JRootPane 클래스를 기반으로 하는 컨테이너 구조를 가지게 된다.
q JRootPane
- Swing의 최상위 컨테이너와 JInternalFrame 컨테이너에 속함
- layeredPane, glassPane, contentPane, menuBar로 구성
q layeredPane
- OHP슬라이드를 쌓듯이 컴포넌트를 층구조로 배치할 수 있는 컴포넌트
- contentPane과 menuBar를 담는 역할을 한다.
- 보통의 경우 스윙 컨테이너에 컴포넌트를 추가할 때는 contentPane에 추가하게 된다.
- 불투명한 상태
- 스윙의 컴포넌트들을 배치하면 먼저 배치하는 컴포넌트가 나중에 배치하는 컴포넌트보다 위에 나타나게 된다.
- 여러 개의 레이어를 포개놓은 개념으로 순서대로 컴포넌트가 그려지게 된다.
- JRootPane에 들어있는 JLayeredPane,은 contentPane과 menuBar를 배치하기 위해서 사용
- getLayeredPane()메소드를 이용하여 JRootPane으로부터 JLayeredPane에 접근
- JLayeredPane에서는 동일 레이어에 추가된 컴포넌트들 사이에도 그려지는 순서를 정할수 있다 – 인덱스
q JLayeredPane
- 포함하고 있는 자식 컴포넌트들을 다중 계층으로 분류내 놓고 낮은 계층부터 차례로 그리는 컨테이너
- 3차원적인 배치
- Layer – 계층의 상하로의 상대적인 위치
- 낮은 정수값을 가지는 계층에 있는 자식 컴포넌트들은 보다 높은 계층의 것들보다 아래에 존재하며 따라서 더 먼저 그려진다.
- Position-같은 계층내에 속한 컴포넌트들의 상대적인 위치, 큰 값일수록 낮은 위치에 먼저 그려진다.
q glassPane
- 보이지 않은 유리막
- LayedPane의 위에 있는 투명한 컨테이너로서 보이지 않게 이벤트를 가져와 처리하는데 많이 사용
- FlowLayout이 디폴트
- JRootPane에서 glassPane 생성은 visible속성 false, opaque 속성 false
- visible – 컴포넌트를 존재하게 할지, 존재하지 않게 할지 결정하는 속성
- opaque – 컴포넌트의 뒷배경을 그릴지 안 그릴지를 결정하는 속성
- JRootPane에서 glassPane에 접근하기 위한 메소드 getGlassPane()
- glassPane() 변경 –setGlassPane()
- glassPane을 활성화 시키는 이유는 명령의 오동작을 막기 위해 – 비활성화된 창을 선택하기 위해 비활성화된 창의 contentPane을 선택하였을 때 glassPane이 존재하지 않는다면 비활성화되었던 창이 활성화 될 뿐만 아니라 contentPane에 배치되어 있던 컴포넌트가 이벤트를 받게 될 것이다.
q JScrollPane
- 한 화면에 표시할 수 있는 양이 한정되어 내용을 모두 표시할 수 없을 때 화면의 오른쪽과 아래에 스크롤을 생성하여 이동시킬 수 있도록 해주는 컨테이너
q BoxLayout
- 컴포넌트들을 컨테이너의 X축 혹은 Y축 한 방향으로 순서대로 배치시켜 준다.
- 방향이 정해지면 컨테이너 영역의 크기가 변경되어도 Wrapping이 되지 않고 자신의 위치를 지킨다.
q Box
- 가상의 보이지 않는 박스(빈 공간)를 생성하여 컨테이너에 배치할수 있도록 해준다.
- 컴포넌트 간의 일정한 간격 등을 유지 할 수 있도록 해준다.
- Glue
q 수평이나 수직방향으로 최대 크기의 빈 공간을 생성시켜 준다.
q 컴포넌트와 컴포넌트 사이를 컨테이너의 양쪽 끝까지 벌려 놓는 역할을 한다.
q 컨테이너의 사이즈가 변하더라도 포함되어 있는 컴포넌트의 크기가 변하지 않도록 유동적으로 변하게 되는데 한쪽 방향에 대해서만 최대 크기의 빈 공간이 생기게 된다.
q createGlue() -보이지 않는 글루 박스 객체를 생성
q createHorizontalGlue() - 보이지 않는 수평 글루 박스 객체를 생성
q createVeritcalGlue() -보이지 않는 수직 글루 박스 객체를 생성
- RigidArea
q 가로 , 세로 방향으로 고정된 크기의 간격을 생성해 준다.
q createRigidArea(Dimension) - 고정된 영역의 박스 객체를 생성
- Struct
q 컨테이너의 크기와는 상관없이 가로, 세로 한 방향으로만 일정 크기를 유지
q 폭 또는 높이가 정해져 있는 일정한 크기의 버팀목을 컴포넌트와 컴포넌트 사이에 생성
q createHorizontalStrut(int w) - 보이지 않는 수평 스트럿 박스 객체를
지정된 너비로 생성
q createVerticalStrut(int h) - 보이지 않는 수직 스트럿 박스 객체를
지정된 높이로 생성
'IT_Programming > Java' 카테고리의 다른 글
[펌] JNI 를 사용해서 C 로 작성된 dll을 실행하기 (0) | 2008.11.18 |
---|---|
JInternalFrame 예제 .. MDI 만들기.. (0) | 2008.11.09 |
[AWT_CheckBox] 동적으로 객체를 생성하고 제거하기 (0) | 2008.10.16 |
JAVA Perfomance Tuning 1, 2, 3 (0) | 2008.09.08 |
Java performance tips (0) | 2008.09.08 |