본문 바로가기
TIL

BorderLayout (22.09.22 TIL)

by winteringg 2022. 9. 22.

개인 프로젝트 4일차인 오늘 알게된 것: BorderLayout 은 동서남북과 가운데 방향에 컴포넌트를 넣을 수 있는데, 수직 정렬로 쌓으려면 북, 가운데, 남 이렇게 세 방향 [NORTH (or PAGE_START), CENTER, SOUTH (or PAGE_END)] 만 가능하다. 공간을 세 개밖에 쓰지 못하기 때문에 수직으로 쌓기 위해서는 이 세 개의 공간에 또 JPanel 을 배치한 후 그 패널 안에서 다시 세 공간으로 컴포넌트를 쌓고, 또 패널 만들어서 쌓고..이렇게 하는 수 밖에 없다.

오늘 같은 경우 하도 많은 패널들이 쌓이고 쌓이다 보니까 어디서 잘못된 건지 알 수가 없었다. 일단 잘못된 패널을 캡쳐해서 어떻게 수정해야하는지 고민하고 패널을 여기저기 오고가며 계속 레이아웃을 바꿔보았다. 이런 방식으로 하니까 내가 이 패널을 수정 했었는지, 아니면 얘는 해결 된 패널인건지 도통 알 수가 없었다. 그래서 반복적인 테스트를 엄청 오래 했다.

경우의 수가 너무 많았지만 오랫동안 중간 중간 레이아웃을 바꿔가며, 메서드를 돌아다니며 수정하고 실행해보고 또 수정하고 실행해보고 했는데도 이유를 찾지 못했다. 그런데 홀맨님께서 전부 다 한 번에 실행시켜서 원인을 찾지 말고, 패널 하나씩 불러와서 테스트해보고 원하는 모양이 나오면 이제 다음 패널 호출하고, 또 성공하면 다음 것에서 원인을 찾으면서 본인이 원하는 모양을 잡아가면 된다고 하셨다. 디버깅 경험이 거의 없어서 이런 방식으로 해야 한다는 생각 조차 하지 못했는데, 말씀해주신 방식으로 40분 정도 걸려서 해결했다. 오늘 낮부터 삽질한 것에 비하면 굉장히 단시간에 해결한 것이다. 이제 내가 구현한 기능이 패널에 잘 나오는지 테스트해보고 다음 기능에 시간을 쏟으면 된다. 시간이 없다고 조급해하지 말고 작은 단위부터 쪼개어서 해결하자....전체적인 그림을 처음부터 보는 것은 굉장히 안 좋은 습관이다.

댓글