Egloos 728x90

구글 애널리틱스


2009/01/02 11:41

[ Java ][ AWT ] Panel , FlowLayout ▷ Java 복습



  Panel은 여러 컴포넌트를 담을 수가 있고, 담겨 있는 컴포넌트들에 대한 이벤트 처리 기능을 넣어줄 수도 있다고 합니다.

  하지만 일반적으로는 Layout과 연계해서 단순히 컴포넌트들을 예쁘게 자리잡아주는 용도로 사용하죠...

  FlowLayout은 레이아웃 관리자를 지정하지 않으면 기본값으로 지정되는 레이아웃입니다. 특징이라면, 폭이 좁으면 컴포넌트가 알아서 다음줄로 옮겨간다는 것. 덕분에 창 크기를 바꾸면 그에 따라 알아서 위치를 잘 옮깁니다.

  하지만 그다지 모양이 예쁘지 않달까, 컴포넌트가 많아도 그냥 쭉 늘어서 있을 뿐이라 가독성이 많이 떨어지기 때문에 그다지 쓸 일은 없겠네요.


/* Panel, FlowLayout 간단 예제
JavaStudy(http://www.javastudy.co.kr)
→자바 프로그래밍 강좌→Java Programming / 박용우
→제8장 AWT(http://www.javastudy.co.kr/docs/yopark/chap08/chap08.html)
→→ 4. 컨테이너와 레이아웃 관리자(Layout Manager)
→→→ 나. 플로우 레이아웃 관리자(FlowLayout)
*/

import java.awt.*;


class FlowLayoutTest extends Frame {

public FlowLayoutTest() {

Panel p = new Panel();
//패널 컴포넌트는 다른 일반 컴포넌트들을 담거나, 패널이 담고 있는 컴포넌트들의 이벤트를 처리 추가에 사용
//일반적으로는 컴포넌트들을 보기좋게 정렬하기 위해 담아두는 역할로 사용한다.

//p.setLayout(new FlowLayout());
//레이아웃을 지정하지 않으면 자동적으로 FlowLayout인듯 함.
//setLayout(new FlowLayout())을 사용해 강제적으로 FlowLayout으로 지정하는 것도 가능

p.add(new Button("Button 1"));
p.add(new Button("Button 2"));
p.add(new Button("Button 3"));
p.add(new Button("Button 4"));
p.add(new Button("Button"), "Button");//★???
// Panel이 가진 메서드는 아니다. 그나마 비슷해 보이는 것이 Container 클래스가 가진 add(Component comp, Object constraints).
//아마도 컴포넌트를 삽입하면서, 컴포넌트에 이름을 붙여서 이후 조정하기 편하도록 꾀하는 것이 아닌가 싶음.
//(다만 그렇다면 삽입할 때 String으로만 받아들여도 충분할 텐데..., 굳이 Object형으로 받는 것은 뭔가 다른 이유가 더 있을 듯한데...)


Choice colorChooser = new Choice(); //팝 업 리스트(pop-up list)를 보여주는 선택 컴포넌트

colorChooser.add("Green");
colorChooser.add("Red");
colorChooser.add("Blue");


p.add(colorChooser, "Colors");


add(p);

}



public static void main(String args[]) {

FlowLayoutTest f = new FlowLayoutTest();

f.pack(); //자동적으로 적당한 크기로 맞춰줌
f.setTitle("FlowLayout"); //창의 제목줄에 나올 문자열을 지정
f.setVisible(true);

}

}

  이 소스 역시 JAVA STUDY 박용우님의 강좌에 나와있던 것을, 개인적으로 보기 편하게 주석을 달았습니다.

덧글

댓글 입력 영역

애드센스336x280

알라딘TTB-Egloos(하단-일반)



이 이글루를 링크한 사람 (블랙)

36