2011-04-26 4 views
18

이 두 속성을 이해하는 데 어려움이 있습니다. 구성 요소에 어떻게 무게를 줘야합니까? 이 숫자는 어떻게 계산됩니까? 웹에서 여러 기사를 읽으려고했지만 이해가되지 않습니다.Java GridBagLayout의 Weightx 및 Weighty

감사합니다.

답변

16

패널 내의 공간이 포함 된 구성 요소의 preferredDimension보다 큰 경우 추가 구성 요소에 가중치 및 가중치를 사용하여 개별 구성 요소에 배포합니다.

은 0.0에서 1.0까지의 값을 사용합니다 (백분율로 생각하십시오).

  • weightx에는 수평 간격을 인

  • 무게 수직 간격을 인

데스크톱 가장 일반적인 시나리오는 측면 창은 고정 된 크기를 유지하는 것이있다 (weightx에는/무게 = 0.0) 및 가운데 창은 나머지 공간 (weightx/weighty = 1.0)을 차지합니다. 그러나 변형을 사용하면 프레임 크기가 변경 될 때 응용 프로그램이 개별 구성 요소의 크기를 조정하는 방법을 완벽하게 제어 할 수 있습니다.

+2

아주 좋지만 0.0에서 1.0까지의 값을 사용할 필요는 없습니다. 값은 무엇이든 될 수 있습니다. 추가 공간은 개별 구성 요소 가중치의 백분율을 행이나 열의 모든 구성 요소의 총 가중치로 나눈 값에 할당됩니다. –

+0

실제로. 0.0과 1.0 사이의 값을 사용하는 것이 가장 좋은 방법이며, 백분율로 생각하면 코드를 읽기가 더 쉽습니다. – Codemwnci

+2

감사합니다. 따라서 두 개의 버튼의 가중치가 0.2와 0.8 인 경우 버튼 중 하나는 공간의 "20 %"를 얻고 다른 하나는 "80 %"를 얻습니다. – LuckyLuke

2

weightxweighty은 열과 행 사이에 공간을 분산시키는 방법을 결정하는 데 사용됩니다.

이 값은 크기 조정 동작을 지정하는 데 중요합니다. 가중치 또는 가중치를 지정하지 않으면 모든 구성 요소가 해당 컨테이너의 가운데에 함께 모이게됩니다. 자세한 내용은 GridBagLayout의 문서를 참조하십시오.

각 열의 가중치는 해당 열의 구성 요소에 대해 지정된 최대 가중치와 관련이 있습니다. 마찬가지로, 각 행의 가중치는 해당 행의 구성 요소에 대해 지정된 가장 높은 가중치와 관련됩니다.