IT_Programming/Java

SWING 주요 컴포넌트 클래스

JJun ™ 2008. 11. 9. 15:02

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) - 보이지 않는 수직 스트럿 박스 객체를

                                                      지정된 높이로 생성