2013-07-11 2 views
1

내 질문은 매우 간단하지만 GridBagLayout을 사용하여 가능합니까? 다른 레이아웃에서는 더 쉬울 수도 있지만 내 목표는 그렇게하는 것입니다.GridBagLayout에서 고정 너비로 ​​셀을 만들 수있는 방법

기본적으로 고정 폭으로 열이있는 방법이 있는지 궁금합니다.

+1

주어진 열의 크기가 그 안에있는 구성 요소의 크기 또는 달라질 수있는 제약 조건의 결과로 결정됩니다. – MadProgrammer

+1

FlowLayout을 사용하여 JPanel 내부에 JLabel을 배치합니다. (JLabel) JPanel의 적절한 크기를 설정합니다. JPanel을 GridBagLayout와 함께 JPanel에 넣습니다. –

+0

@Gilbert Le Blanc Thanx하지만 솔직히 잘 작동하지 않습니다. setPreferredSize() 메소드는 이것을 호출 할 때 필요하지 않은 높이에 대한 정보를 필요로하기 때문입니다. 그리고 그 동작은 그다지 견고하지 못합니다. 창 크기가 변경 (축소)되고 크기가 변경되어 더 이상 제공된 데이터에 맞지 않습니다. 나는'setPreferredSize()'가 그렇게 좋은 생각이 아닐 것이라고 생각한다 ... –

답변

2

당신은

protected GridBagLayoutInfo GetLayoutInfo(Container parent, int sizeflag) 

그냥 호출 GridBagLayout's 방법을 슈퍼를 무시하려고 public int columnWidths[] 배열 필드를 변경할 수 있습니다 (I는이 셀 긴 또는 짧은 라벨 내부에 넣을 경우 그래서, 그것의 폭을 변경하지 않습니다) 원하는 너비를 업데이트합니다.

+0

+1, 결코 그 'Layout'에서 깊은 생각하지 않았다. 흥미로운 접근 방법 :-) –

+0

안녕하세요, 트릭을 고맙습니다.하지만 내가 제안한 것을 할 수 없었습니다. 나는 그것이 귀찮은 것을 알 수 있지만, 당신의 솔루션을 구현하는 코드의 구체적인 부분을 제공해 주시겠습니까? 시도했지만 오류 메시지가 있습니다 ... –

관련 문제