2012-05-29 2 views
0

16 개의 버튼을 4x4 격자로 표시하려고합니다. 각 버튼은 동일한 크기 여야하며 동일한 간격을 유지해야합니다.격자 스타일 레이아웃에서 JButton의 고정 크기 설정

간격 크기를 설정할 수 있었지만 버튼의 크기를 줄일 수 없습니다. 기본적으로 그룹 레이아웃 용으로 사용했습니다 ...

layout.setHorizontalGroup(layout.createSequentialGroup() 
       .addGroup(layout.createParallelGroup(LEADING) 
        .addComponent(button1) 
        .addComponent(button5) 
        .addComponent(button9) 
        .addComponent(button13)) 
       .addGroup(layout.createParallelGroup(LEADING) 
        .addComponent(button2) 
        .addComponent(button6) 
        .addComponent(button10) 
        .addComponent(button14)) 
       .addGroup(layout.createParallelGroup(LEADING) 
        .addComponent(button3) 
        .addComponent(button7) 
        .addComponent(button11) 
        .addComponent(button15)) 
       .addGroup(layout.createParallelGroup(LEADING) 
        .addComponent(button4) 
        .addComponent(button8) 
        .addComponent(button12) 
        .addComponent(button16)) 
      ); 

      layout.setVerticalGroup(layout.createSequentialGroup() 
       .addGroup(layout.createParallelGroup(BASELINE) 
        .addComponent(button1) 
        .addComponent(button2) 
        .addComponent(button3) 
        .addComponent(button4)) 
       .addGroup(layout.createParallelGroup(BASELINE) 
        .addComponent(button5) 
        .addComponent(button6) 
        .addComponent(button7) 
        .addComponent(button8)) 
       .addGroup(layout.createParallelGroup(BASELINE) 
        .addComponent(button9) 
        .addComponent(button10) 
        .addComponent(button11) 
        .addComponent(button12)) 
       .addGroup(layout.createParallelGroup(BASELINE) 
        .addComponent(button13) 
        .addComponent(button14) 
        .addComponent(button15) 
        .addComponent(button16)) 

누군가 더 나은 방법으로 도와주세요.

+0

당신이 GridLayout과 사용할 수 없습니다 : 당신은

GridLayout g = new GridLayout(rows, columns) 

당신은 그래서 당신의 코드처럼 보일 것 AWT 을 가져와야 라인을 사용하여 생성? – elias

+0

@Elias 감사합니다. 동료가 작동합니다. :) –

답변

0

당신은 또한 GridLayout과를 사용하여 시도해 볼 수도 있습니다(). 이렇게하면 모든 구성 요소가 모눈으로 정렬되고 행과 열은 매개 변수로 정의됩니다.

GridLayout g = new GridLayout(4,4); 
//Add it to your JPanel 
myJpanel.setLayout(g); 
//then 
myJpanel.add(button1); 
//the rest of your code 
-1

GroupLayout의 각 구성 요소 크기는 3 가지 값으로 제한됩니다. 최소 크기, 원하는 크기와 최대 크기

시도 :

button.setPreferredSize(new Dimension(50, 10)); 
+0

플랫폼과 L & F에서 더 잘 작동하므로 일반적으로 기본 크기를 설정하지 않는 것이 좋습니다. –

+0

* "3 개의 값으로 제한"* 레이아웃 관리자가 해당 값을 존중하기로 선택할 때마다. 나는'setPreferredSize()'에 대해이 답변에 대해 찬성표를 던지 겠지만 -1로 추가 이유를 추가합니다. –