본문 바로가기

LANGUAGES, METHODLOGY

자바 스윙 레이아웃 끼리 정렬하기

원래 스윙을 잘 다루지 못해서 창 크기에 상관없이 고정된 크기로만 내용을 출력하게끔 시켰다가


창 크기에 상관없이 유동적으로 바뀌었으면 해서 내용을 찾던중에


안드로이드와 비슷하게 스윙의 BorderLayout 을 사용해서 구성 패널들을 창 크기에 맞게 조절해줄 수 있었다.


우선 기본 패널 X와 X에 딸린 A, B, C의 패널이 존재할때 A를 맨 위에 배치하고자 하면


X.add(A, BorderLayout.NORTH);


다음 B를 좌측에, C를 가운데부터 우측까지 두고자 하면


B.setPreferredSize( new Dimension(300, 300));

X.add(B, BorderLayout.WEST);


C.setPreferredSize( new Dimension(300, 300));

X.add(C, BorderLayout.CENTER);


해주면 된다.


중요한건 setPreferredSize를 해주어야 출력을 잘 한다는 것이다.



setPreferredSize 없이 레이아웃 배치만 하니 처음에 작거나 이상한데 배치되어 있다가


창을 최대화 하고 다시 줄여줄 때만 맞춰주는 모습을 보이다가


setPreferredSize 를 적용해 주니 처음부터 원하던 모습대로 정렬된 레이아웃을 출력하는걸


확인할 수 있었다.


아, 그리고 기본 패널 X는 선언할 때 X.setLayout(new BorderLayout()); 을 필히 해주어야 한다!