Component 클래스와 Container 클래스
✒️ 2025-05-15 14:44 내용 수정
Component 클래스(AWT)
화면에 보여지거나 사용자와 상호작용할 수 있는 클래스
- 버튼, 체크박스, 스크롤바 등이 일반적인 유저 그래픽 인터페이스다.
- 추상 클래스이며, GUI에 사용할 대부분의 클래스의 부모 클래스이다.
- JComponent 클래스는 Component 클래스를 상속 받으며, Component 클래스의 Swing 버전이다.
| 메서드 | 설명 |
|---|---|
setLocation(int a, int b) |
x=a, y=b 위치에 frame 이 표시될 위치 설정 |
getLocation() |
Component의 위치를 반환 |
getX() |
Component의 X 위치를 반환 |
getY() |
Component의 Y 위치를 반환 |
setSize(int a, int b) |
x=a, y=b 크기의 frame 설정 |
getSize() |
Component의 크기를 반환 |
getWidth() |
Component의 너비를 반환 |
getHeight() |
Component의 높이를 반환 |
setVisible(true) |
frame을 보이게 할지 결정 |
setBounds(int x, int y, int width, int height) |
Component의 위치와 크기를 원하는대로 지정 |
setEnabled(boolean enable) |
Component의 활성화 여부를 설정. true일 때 상호작용 가능 |
setBackground(Color color) |
Component의 배경색을 지정 |
setForeground(Color color) |
Component의 전경색을 지정 |
setFont(Font font) |
Component의 폰트를 지정 |
repaint() |
Component를 다시 그리도록 요청 |
addMouseListener(MouseListener ml) |
MouseListener를 추가 |
removeMouseListener(MouseListener ml) |
MouseListener를 제거 |
setBorder(Border border) |
Component의 경계를 지정 |
- MouseListener 외의 모든 EventListener들을 추가하거나 제거할 수 있다.
- 그 외에 매우 많은 메서드들이 있으나, 전부 기재하진 않고 필요 시에 추가 예정
Container 클래스
다른 Component를 담을 수 있는 클래스
- Component 클래스 상속받는다.
- Container 클래스도 추상 클래스이므로 많은 자식 클래스에서 상속 받아 구현했다.
- JContainer 클래스는 Container 클래스를 상속 받으며, Container 클래스의 Swing 버전이다.
| 자식 클래스 | 설명 |
|---|---|
| Frame (AWT) | 윈도우를 나타내는 Container 클래스. 사용자 인터페이스의 메인 창 |
| JFrame (Swing) | Frame의 Swing 버전 |
| Panel (AWT) | Component를 담을 수 있는 간단한 Container 클래스 |
| JPanel (Swing) | Panel의 Swing 버전 |
| Dialog (AWT) | 사용자로부터 입력을 받는 윈도우창 형태의 Container 클래스 |
| JDialog (Swing) | Dialog의 Swing 버전 |
| ScrollPane (AWT) | 스크롤이 가능한 Container 클래스 |
| JScrollPane (Swing) | ScrollPane의 Swing 버전 |
- 메서드
| 메서드 | 설명 |
|---|---|
add(Component comp) |
Container에 Component 추가 |
remove(Component comp) |
Container에 Component 제거 |
setLayout(LayoutManager mgr) |
Container의 레이아웃 매니저를 설정 |
getLayout() |
현재 Container의 레이아웃을 반환 |
validate() |
Container의 구성을 변경한 후 레이아웃을 다시 유효하게 변경 |
revalidate() |
validate()보다 더 효율적으로 레이아웃을 다시 변경 |
getComponent() |
Container에 포함된 모든 Component를 배열로 반환 |
getComponent(int index) |
지정된 index 위치의 Component를 반환 |
getComponentCount() |
Container에 포함된 Component의 수를 반환 |
getComponentAt(int x, int y) |
지정된 x, y 좌표의 Component를 반환 |
addMouseListener(MouseListener ml) |
MouseListener를 추가 |
removeMouseListener(MouseListener ml) |
MouseListener를 제거 |
- MouseListener 외의 모든 EventListener들을 추가하거나 제거할 수 있다.
- 그 외에 매우 많은 메서드들이 있으나, 전부 기재하진 않고 필요 시에 추가 예정