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