2013년 8월 8일 목요일

java awt Container, Panel [오라클커뮤니티, 자바교육, 오라클자바커뮤니티]

-------------------------------------

java.awt.Container(Abstract)

------------------------------------- 


오라클자바커뮤니티에서 설립한 오엔제이프로그래밍 실무교육센터
(오라클SQL, 튜닝, 힌트,자바프레임워크, 안드로이드, 아이폰, 닷넷 실무전문 강의)  


java.lang.Object --> java.awt.Component --> java.awt.Container

자신의 영역안에 다른 Component를 포함할수 있는 Component

Container도 Component Class의 하위Class 이므로 그 자체도 Component로 취급되며 다른 Container에 부착될 수 있습니다.

일반적으로 GUI를 만들때는 Component를 Container에 배치하고, 그런 작은 Container를 더 큰 Container에 포함시켜서 GUI를 구성 합니다.

Frame과 Applet은 대표적인 최상위 Container이다. 최상위 Container란 다른 Container를 포함하여 맨 바깥쪽 Container로 사용되는 컨테이너를 지칭 합니다. 이에 비해 Panel은 다른 Container에 부착되어 일부 영역을 Control하는 경우에 사용 됩니다. Window는 많이 사용되지 않으며 하위 Class인 Frame이 많이 사용 됩니다.

Dialog와 FileDialog Container는 대화창에서 주로 사용 됩니다.

컴포넌트를 컨테이너에 추가할 때 색인이 지정되지 않을 경우, 목록 끝(즉, 스택 순서 아래)에 추가 됩니다.

Panel, ScollPane, Window의 상위 클래스


Window클래스나 Window 클래스의 파생클래스(Frame등)는 포함 할 수 없습니다.



Container – component 추가/제거/추출 메소드

add(Component) : 지정된 컴포넌트를 컨테이너의 끝에 추가 합니다.

add(Component, int) : 해당 위치에 있는 컨테이너에 지정된 컴포넌트를 추가 합니다.

add(Component, Object) : 지정된 컴포넌트를 컨테이너의 끝에 추가 합니다.

add(Component, Object, int) : 지정된 색인에서 지정된 제약 조건이 있는 컨테이너에 지정된 컴포넌트를 추가 합니다.

add(String, Component) : 컨테이너에 지정된 컴포넌트를 추가 합니다.

remove(Component) : 컨테이너에서 지정된 컴포넌트를 제거 합니다.

remove(int) : 컨테이너에서 index에 의해 지정된 컴포넌트를 제거 합니다.

remove() : 컨테이너에서 모든 컴포넌트를 제거합니다.

getcomponent(int) : 컨테이너에 있는 n번째 컴포넌트를 가져 옵니다.

getcomponentAt(int, int) : x,y 위치가 포함된 컴포넌트 위치를 찾습니다.

getcomponentAt(Point) : 지정된 지점이 포함된 컴포넌트를 가져 옵니다.

getcomponentCount() : 패널에 있는 컴포넌트의 수를 가져 옵니다.

getComponents() : 컴포넌트에 있는 모든 컴포넌트를 가져 옵니다.

isAncestorOf(Component) : 컨테이너의 컴포넌트 계층구조에 컴포넌트가 포함되어 있는지 확인 합니다.



Container – 그래픽/이벤트와 관련된 메소드

update(Graphics) : 컨테이너를 갱신 합니다.

paint(Graphics) : 컨테이너의 색상을 표시 합니다.

paintComponents(Graphics) : 컨테이너에 있는 각 컴포넌트의 색상을 표시 합니다.

print(Graphics) : 컨테이너를 인쇄합니다.

printComponents(Graphics) : 컨테이너의 각 컴포넌트를 인쇄 합니다.

addContainerListener(ContainerListener) : 컨테이너로부터 컨테이너 이벤트를 수신하기 위해 지정된 컨테이너 수신기(listener)를 추가 합니다.

processContainerEvent(ContainerEvent) : 등록된 ContainerListener 객체로 보내어 컨테이너에서 발생하는 컨테이너 이벤트를 처리 합니다.

processEvent(AWTEvent) : 컨테이너의 이벤트를 처리 합니다.

doLayout() : 컨테이너가 컴포넌트를 배치하도록 합니다.

getLayout() : 컨테이너의 배치 관리 프로그램을 가져 옵니다.

setLayout(LayoutManager) :컨테이너에 대한 배치 관리 프로그램을 설정 합니다.

validate() : 컨테이너와 모든 부속 컴포넌트를 확인합니다. 컨테이너와 하부 컴포넌트를 다시 배치 합니다.

invalidate() : 컨테이너와 모든 부속 컴포넌트가 다시 그려져야 한다고 표시 합니다.



Container – 기타 메소드

addNotify() : 컨테이너가 피어(peer)를 작성하도록 통지 합니다.

getAlignmentX() : x축을 따라 정렬 합니다.

getAlignmentY() : y축을 따라 정렬 합니다.

getInsets() : 컨테이너의 경계 크기를 표시하는 컨테이너의 인세트(inset)를 결정 합니다.

getMaximumSize() : 컨테이너의 최대 크기를 리턴 합니다.

getMinimumSize() : 컨테이너의 최소 크기를 리턴 합니다.

getPreferredSize() : 컨테이너의 선호 크기를 리턴 합니다.

invalidate() : 컨테이너를 무효로 합니다.

list(PrintStream, int) : 지정된 출력 스트림에 컨테이너 목록을 인쇄 합니다.

list(PrintWriter, int) : 지정된 들여쓰기 위치에서 시작하여 지정된 인쇄 작성자로 목록을 인쇄 합니다.

removeNotify() : 컨테이너와 모든 부속 컴포넌트가 피어를 제거하도록 통지 합니다.





------------------------------

java.awt.Panel

--------------------------

다른 Component나 그하위 Component들이 표시될수 있는 장소를 제공하나 , 스스로 화면에 그릴수는 업습니다.

자기를 스스로 그릴수 있는 다른 Window나 그하위의 Frame, Dialog 와 같은 Component에 포함시켜서 사용해야 합니다.

Panel Class에서만 제공하는 주요한 메소드 특별히 없습니다. 결국 다른 Component를 포함할수 있다는 점을 제외하면 Canvas와 별차이가 없다고 할수 있습니다.

Applet Class가 Panel Class를 상속합니다.

Applet은 브라우저창에서 실행되므로 자신을 그릴수 있는 기능을 제공하지 않는 Panel을 상속한다고 볼 수 있습니다.



[예제]

/* 프레임에 Panel을 올리는 예제 */
import java.awt.*;
public class PanelTest extends Frame{
public PanelTest(String s) {
super(s);
}
public static void main(String[] args) {
PanelTest f = new PanelTest("Frame에 Pamel을 넣는예제");
Panel p = new Panel();
f.setSize(300,300);
f.setLayout(null);
p.setSize(150,150);
p.setBackground(Color.blue);
f.add(p);
f.setVisible(true);
}

댓글 없음:

댓글 쓰기