2013-10-24 2 views
1

버튼 크기를 재조정하고 JApplet의 패널에 동일한 크기로 배치하려고합니다. 내가 실행할 때 내가그리드 백 레이아웃을 사용하여 버튼 크기 조절

public void init() { 
    // TODO start asynchronous download of heavy resources 

    JButton btnWestern=new JButton("Western"); 
    JButton btnPop=new JButton("Pop"); 

    GridBagConstraints c4=new GridBagConstraints(); 

    JPanel jPanel1 = new JPanel(); 
    getContentPane().setLayout(new java.awt.GridBagLayout()); 
    jPanel1.setLayout(new java.awt.GridBagLayout()); 

    c4.gridx = 0; 
    c4.gridy = 0; 
    c4.insets = new Insets(36, 10, 0, 249); 
    jPanel1.add(btnWestern, c4); 

    c4.gridx = 0; 
    c4.gridy = 1; 
    c4.insets = new Insets(33, 10, 0, 249); 
    jPanel1.add(btnPop, c4); 

    add(jPanel1, new java.awt.GridBagConstraints()); 

    } 

를 사용하여 시도했다, 이것은 내가

enter image description here

무엇을 얻을하지만 난이 변경되면 버튼의 텍스트가 동일하거나 같은, 동일한 길이를 가질 것으로 나타났습니다

JButton btnWestern=new JButton("Button1"); 
JButton btnPop=new JButton("Button2"); 

내가 원하는 출력을 얻을

enter image description here

버튼의 텍스트도 길이가 같지 않은지, 버튼의 크기가 같은지 확인하려면 어떻게해야합니까?

답변

3

아직 읽어 보지 않았다면 How to Use GridBagLayout 튜토리얼을 읽는 것이 좋습니다. GridBagLayout은 강력하지만 더 복잡한 LayoutManager 중 하나이기도합니다.

원하는 동작을 얻으려면 GridBagConstraints.fill 속성을 설정해야한다고 생각합니다. 당신이 두 버튼에 동일한 텍스트를 사용하는 경우

편집

c4.fill = GridBagConstraints.HORIZONTAL;처럼 경우

이해야 뭔가 (관찰 된 동작에 대한 설명의 비트), 그들의 계산 된 크기가 될 수있을 테니까요 같은, 그래서 그들은 당신이 원하는대로 렌더링됩니다. 다른 크기의 텍스트를 사용하면 버튼이 기본적으로 텍스트에 맞는 크기로 렌더링됩니다. GridBagConstraints.fill의 기본값은 GridBagConstraints.NONE이며 LayoutManger가 구성 요소의 크기를 조정하지 않음을 나타냅니다. 채우기를 GridBagConstraints.HORIZONTAL으로 변경하면 LayoutManger가 표시 영역을 채우기 위해 구성 요소의 가로 크기를 조정합니다.

+0

고맙습니다 !!!!!!!!! –