2013-09-06 2 views
0

visible 속성이 false로 설정된 Java Swing 구성 요소가 있습니다. 그들이 보이지 않을 때 나는 레이아웃에서 어떤 공간도 차지하지 않기를 바란다. 가장 좋은 방법은 무엇입니까?보이지 않는 Java Swing 구성 요소를 축소하는 가장 좋은 방법

WPF의 Visibility.Collapsed의 동작을 모방하려고합니다.

수정 : MiGLayout을 사용하고 있습니다. kiheru가 답변에서 설명했듯이, 내가 가지고 있었던 문제는 일반적으로 스윙 레이아웃이 아니라 MiGLayout에만 있습니다.

+0

레이아웃 관리자를 사용하여 레이아웃을 올바르게 완료했을 때의 기본 동작이 아닙니까? – kiheru

+0

'text' 속성이 문자열로 설정된 JLabel이 있습니다. 'visible' 속성을 false로 설정하면 레이블은 여전히 ​​공간을 차지하지만 텍스트는 표시되지 않습니다. Miglayout을'flowy'로 ​​설정하고 있습니다. –

+2

그건 분명히 MigLayout의 이상한 일입니다. 'hidemode'를 디폴트가 아닌 다른 것으로 설정해야합니다. http://www.miglayout.com/whitepaper.html – kiheru

답변

3

MigLayout은 기본적으로 표시되는 구성 요소와 동일한 방식으로 보이지 않는 구성 요소를 처리합니다. 다른 종류의 동작에는 hidemode을 지정해야합니다. documentation에서 가능한 값은 다음과 같습니다.

  1. 기본값. 눈에 보이지 않는 구성 요소는 마치 보이는 것처럼 정확하게 처리됩니다.
  2. 구성 요소의 크기 (보이지 않는 경우)는 0, 0으로 설정됩니다.
  3. 구성 요소의 크기 (보이지 않는 경우)는 0, 0으로 설정되고 간격도 0으로 설정됩니다 .
  4. 보이지 않는 구성 요소는 레이아웃에 전혀 참여하지 않으며 예를 들어 표 셀을 차지하지 않습니다.
관련 문제