2014-07-01 4 views
2

저는 GridBagLayout이라는 주제에 익숙하지 않아 제약 번호 weightfill 사이의 정확한 차이점을 이해할 수 없습니다.GridBagLayout의 작동 방식은 무엇입니까?

을 할당하지 않고 fill으로 지정할 수 있습니다.

weightx 또는 weighty에 0이 아닌 값을 하나 이상 지정하지 않으면 모든 구성 요소가 해당 컨테이너의 가운데에 함께 모이게됩니다. 가중치가 0.0 (기본값) 일 때 GridBagLayout은 셀 모눈과 컨테이너 가장자리 사이에 여분의 공백을 넣기 때문입니다.

제 질문은 이것이 사실이라면 구성 요소 사이에 공백이없는 이유는 무엇입니까?

+0

http://blue-walrus.com/2011/12/gridbaglayout-tutorial/ –

+0

@ 올리버 왓킨스 (OliverWatkins) 덕분에 재미있을 것 같습니다. – YakRangi

답변

7

weightx/y은 지정된 셀의 "가중치"양을 지정합니다. 무게가 클수록 세포가 차지할 공간이 많아집니다. 사용할 수있는 공간의 양은 다른 모든 구성 요소가 배치 된 후에 남아있는 남은 공간입니다.

fill은 주어진 셀에서 사용할 수있는 공간을 차지하기 위해 구성 요소를 확장하는 방법을 결정합니다. 즉, 동일한 열에 두 개의 구성 요소가있는 경우,또는 BOTH 중 하나로 설정된 fill을 사용하여 구성 요소가 열의 사용 가능한 공간을 채우도록 "확장"할 수 있습니다. 예를 들어

Short Long

, 분명히 같은 행의 구성 요소에 대해 작업하고 VERTICAL 또는 BOTH

fillBOTH로 설정 Short 버튼 예를 사용하고 weightx 및의와 것은 1으로 설정하십시오. 짧은 버튼은 컨테이너의 나머지 모든 공간을 차지하려고합니다.

Weighted

당신은 자세한 내용

내 질문에 대한 How to Use GridBagLayout를 통해 읽기이 있는지 확인이 구성 요소 사이에 공간이없는 그들이 부착 보였다 이유는 다음에 해당하는 경우,이다?

GridBagLayout 기본적으로 구성 요소 사이의 간격을 추가하지 않습니다,하지만 당신은 insets 속성을 통해 간격을 지정할 수 있습니다

2

"무게"는 구성 요소를 얼마나 많이 차지하는지를 나타냅니다.
"채우기"는 구성 요소가 추가 위치를 채워야하는지 여부입니다 (전체 위치를 채우기 위해 구성 요소를 확장해야하는지 여부). 여분의 위치를 ​​채우지 않아야하는 경우 "앵커"를 사용하여 구성 요소의 위치를 ​​결정할 수 있습니다 (왼쪽, 오른쪽, 가운데).

+0

이것은 무게를 지정하지 않으면 구성 요소가 여분의 공간을 차지하지 않으므로 채우기가 효과가 없음을 의미합니다. – YakRangi

+1

아니요. 동일한 열에 두 개의 구성 요소가있는 경우 '채우기'(구체적으로'HORIZONTAL' 또는'BOTH'로 설정 됨)는 구성 요소가 (fill 속성을 사용하여) 셀을 채우기 위해 펼치면 원하는 너비가 재정의됩니다. 'VERTICAL' 또는'BOTH'' fill '값을 사용할 때 같은 행의 열에 대해서도 마찬가지입니다. – MadProgrammer

+0

@MadProgrammer 감사합니다. 당신의 설명이 정확하고 내 것보다 낫다 –

관련 문제