원래 스윙을 잘 다루지 못해서 창 크기에 상관없이 고정된 크기로만 내용을 출력하게끔 시켰다가
창 크기에 상관없이 유동적으로 바뀌었으면 해서 내용을 찾던중에
안드로이드와 비슷하게 스윙의 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()); 을 필히 해주어야 한다!
'LANGUAGES, METHODLOGY' 카테고리의 다른 글
[JDBC] jdbc driver class not found 오류시 (0) | 2017.05.12 |
---|---|
[Codility] Distinct - 특정 배열에 포함된 모든 숫자의 종류 수 구하기 (0) | 2017.05.05 |
[Codility] LongestPassword - java.util.regex 를 활용해 조건을 만족하는 문자열 걸러내기 (0) | 2017.05.04 |
[자바 예외처리] Exception() 에 메시지 설정해서 던지기 (0) | 2016.11.11 |
[JAVA] 자바 스윙 폰트 변경하기 (0) | 2016.08.21 |