ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JPanel 레이아웃
    공부/컴 2017. 8. 15. 13:46

    어제까지 JTable 크기 조절 문제로 고민하고 있다가 JScrollPane 에 크기를 지정해줌으로서 해결했다.

    그런데 이번에는 표 전체 크기를 마우스 드래그로 자동으로 조절하게 만들고 싶어진 것이 아닌가.


    나는 유저 커스텀 인터페이스와 인터페이스 자유도를 정말 좋아하는데, 

    이것에 가장 기본이 되는 것이야말로 인터페이스 크기 자유 조절이라고 생각한다.


    어제 썼던 방법은 내가 크기를 임의로 지정 해 주기 때문에 유저가 마음대로 드래그를 통해 바꿀 수는 없었다.

    (창 크기는 바꿀 수 있지만, 창 크기를 바꾸어도 표가 들어간 JPanel 혹은 JScrollPane 의 크기가 바뀌지는 않는다.)



    이것을 어떻게 할까 고민을 하다가 생각 해 보니, 어차피 해당 윈도우에는 내가 적었던 표가 창의 대부분을 차지하고 있기 때문에, 창 크기를 표가 따라가도록 만들기만 하면 되겠다는 생각에 이르렀다.


    결국... 패널 크기 조절 클래스를 돌고 돌아 도착한 종착점은 BorderLayout()....

    처음부터 BorderLayout을 쓰면 좋았을 텐데 너무 멀리 돌아왔다.

    JScrollPane 이나 JPanel 에 지정했던 크기 조정 함수들을 싸그리 지우고 그냥 JPanel 생성함수 안에 

    this.setLayout(new BorderLayout()); 만 추가했더니 내가 고민했던 게 죄다 해결났다.



    창 크기를 드래그로 바꾸면 표도 따라서 커지고, 

    세로 높이가 표보다 작아지게 조절하면 자동으로 Scrollbar 까지 나타난다.



    결국 Layout 으로 돌아오고 보니 뻘짓 한 것 같기도 한데 그만큼 배운 것도 있으니 수확이 있는 셈.


    댓글

Designed by Tistory.