2012-01-17 5 views
4

서식 지정 그룹 (이미지의 왼쪽)과 함께 구성 요소 사이의 크기를 줄이려고합니다. 이 작업을 수행하는 방법?3 개의 스윙 체크 박스 사이의 공간을 줄이는 방법은 무엇입니까?

JPanel formattingGroup = createGroupWithName("Formatting"); 
     formattingGroup.setMinimumSize(new Dimension(250, 20)); 
     formattingGroup.setLayout(new GridLayout(5, 0)); 
     add(formattingGroup); 

     final JCheckBox showSurface = new JCheckBox("Show surface"); 
     showSurface.setSelected(true); 
     formattingGroup.add(showSurface); 

     final JCheckBox showTerrain = new JCheckBox("Show terrain"); 
     showTerrain.setSelected(true); 
     formattingGroup.add(showTerrain); 

     final JCheckBox showVehicleStatus = new JCheckBox("Show vehicle status"); 
     showVehicleStatus.setSelected(true); 
     formattingGroup.add(showVehicleStatus); 

     JPanel pnl = createGroupWithName("Depth Stretch"); 
     formattingGroup.add(pnl); 
     JSlider slider = new JSlider(0, 10); 
     pnl.add(slider); 

답변

3

enter image description here

모든 구성 요소가 동일한 크기를 만들어 GridLayout에서를 사용.

TitledBorder 및 JSlider가있는 JPanel을 눈금에 추가합니다. 따라서 확인란은 해당 패널과 동일한 세로 높이를 사용합니다.

패널에 다른 레이아웃 관리자를 사용해야합니다. 어쩌면 세로 BoxLayout 일 수도 있습니다.

2

Resizing a Component에서 논의 된 사용 가능한 크기 변형을 살펴볼 수 있습니다.

+0

정직한 질문 : [Nimbus 룩앤필] (http://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/custom.html)에서만 가능한 구성 요소의 크기 조정 옵션이 있습니까? ''Nimbus는 현재 크기 변형을 지원하는 유일한 Sun 디자인과 느낌입니다. " – hamena314

+1

크기 변형을 지원하는 유일한 _Sun_ (현재 Oracle) L & F입니다. com.apple.laf.AquaLookAndFeel은 [example] (http://stackoverflow.com/a/17392522/230513)도 마찬가지입니다. – trashgod

0

가중치, 열 또는 행을 지정하고 간격 및 패딩 값을 설정할 수있는 기회를 제공하기 때문에 gridbaglayout을 사용하십시오.

12 개의 프레임 중 하나를 포함하는 Swing 응용 프로그램을 만들었으며 모두 GridBagLayout으로 만들어졌습니다.

나는 그 전에도 다른 것을 시도했지만 모두 한계가있었습니다. 그것이 GridBagLayout이 시작되는 곳입니다. 어떻게 작동하는지 이해하기 시작하기가 조금 더 힘듭니다.하지만 일단 마음이 들면, 원하는 곳에서 구성 요소를 가져 오는 것이 가장 좋습니다.

원하는 경우 GridBagLayout으로 만든 프레임의 멋진 예제를 제공 할 것입니다.