Java에서 setSize()와 setPreferredSize()의 차이점
의 차이점 setSize() 및 setPreferredSize()은 약간 복잡합니다. 때때로 우리는 setSize() 그리고 때때로 setPreferredSize()입니다. 때로는 하나가 우리의 필요를 충족시키고 다른 하나는 그렇지 않습니다. 이 두 방법의 주요 차이점은 무엇입니까? JFrame 과 JPanel에 어느 것을 사용해야합니까?대답은 구성 요소에 부모가없는 경우 setSize() 구성 요소의 크기를 변경하고, 그렇지 않으면 setPreferredSize() 및 두 메서드 모두 setMinimumSize() 및 setMaximumSize()입니다. setPreferredSize() 구성 요소에 적합한 크기를 선택하면 layoutmanager는 구성 요소에 적합한 공간을 정렬하려고 시도합니다.
setSize() 상위 구성 요소가 레이아웃 관리자를 사용하는 경우 아무 작업도 수행하지 않습니다. setSize() 효과가 있다 JFrame 및 JWindow와 같은 최상위 구성 요소에있을 것입니다. 다음 번호로 전화해야 합니다. setSize() 레이아웃 관리자가없는 상위 내부에 구성 요소가있는 경우.
So, setPreferredSize() 레이아웃 관리자가 있는 경우 대부분이 구성 요소의 최적, 최소 및 최대 크기를 복구합니다. 쓰다 setSize() 그리고 setLocation을 사용하여 선택한 레이아웃의 매개변수에 따라 이러한 구성 요소를 배치할 수 있습니다.
Example:
A BorderLayout은 북부 지역의 경계를 에 지정된 차원과 동일하게 설정하려고 시도합니다. setPreferredSize() 북부 지역의. JFrame의 크기와 크기에 따라 그보다 더 커질 수 있습니다. 레이아웃에 따른 다른 구성 요소의 크기.
결론:
- setPreferredSize() 레이아웃이 있는 경우 구성 요소의 최적 위치와 치수를 계산합니다.
- 레이아웃이 없는 경우 setSize() 사용됩니다.