자바 소개에서 스윙의 GridBagLayout에

A, GridBagLayout에 레이아웃 매니저와 레이아웃의 GridBagConstraints 매개 변수 설명

다음 네 개의 매개 변수에 주로 GridBagLayout에 :

columnWidths에 : 열 개수 예 : gridBagLayout.columnWidths = 새로운 INT [] { 0} 나타낸다 만
rowHeights에 : 라인의 수, 예를 들어 gridBagLayout.rowHeights = 새로운 INT []는 { 0, 0}, 2 행의 합계를 나타낸다
columnWeights에 : 각 열의 폭의 비율을 설정하는 단계; gridBagLayout.columnWeights = 새로운 더블 [{ 1.0} 열의 폭 콘테이너의 폭, 즉 상기 용기지지 전체 인
rowWeights에 : 각 행 점유율의 높이의 비를 설정하는 단계; gridBagLayout.rowWeights = 새로운 더블 [] {}; 0.2,0.8은 용기의 제 2 포인트만을 행 높이 8 개 부분을 나타내는 제 2 용기의 행의 높이의 높이를 나타낸다

다음과 같이 GridBagContraints 파라미터 설정을 쉘 :

GridBagLayout에 레이아웃을 사용하기 전에 다음과 같은 매개 변수를 알고 있어야합니다 :

 

 예를 들어 다음 코드의 경우 :

공용  클래스 ClientPanel는 는 연장 JPanel의 { 

    / ** 
     . *를 패널을 생성 
     * / 
    공용 ClientPanel () { 
        GridBagLayout에의 GridBagLayout = 새로운 새로운 GridBagLayout에 (); 
        gridBagLayout.columnWidths = 새로운 새  INT [] {0 } //가 설치되어 
        GridBagLayout에있다. rowHeights에가있다 = 새로운 새  INT [{0, 0 }, 두 로우가 제공된다 // 
        gridBagLayout.columnWeights를 = 새로운 새로운  더블 [{1.0 } // 컨테이너의 폭과 열 폭 설정 
        gridBagLayout.rowWeights = 새로운 새로운 더블 [{0.2,0.8 } 2 개 부분은 용기를 차지 첫 번째 행의 높이 // 여덟 개 용기의 두 번째 행의 높이를 차지 
        setLayout의 (GridBagLayout에) 
        
        JPanel의 패널 = 새로운 새 JPanel의 (); 
        panel.setBackground (Color.PINK) 
        의 GridBagConstraints gbc_panel = 새로운 새 개의 GridBagConstraints (); 
        gbc_panel.insets = 새로운 신규 인 세트 (0,0 ,. 5, 0 ); 
        gbc_panel.fill = 가 GridBagConstraints.BOTH; 
        gbc_panel.gridx = 0 ; 
        gbc_panel.gridy = 0 ; 
        추가 (패널, gbc_panel는) 
        
        JPanel의 Panel_1는 = 새로운 새로운JPanel의 (); 
        panel_1.setBackground (Color.ORANGE); 
        gbc_panel_1의 GridBagConstraints = 의 GridBagConstraints를 (); 
        gbc_panel_1.fill = 가 GridBagConstraints.BOTH; 
        gbc_panel_1.gridx = 0 ; 
        gbc_panel_1.gridy = 1 ; 
        (panel_1, gbc_panel_1)를 추가; 

    } 
}

결과는 다음과 같습니다 :

 

 다음 코드 :

public class ClientPanel extends JPanel {

    /**
     * Create the panel.
     */
    public ClientPanel() {
        GridBagLayout gridBagLayout = new GridBagLayout();
        gridBagLayout.columnWidths = new int[]{0, 0, 0,0};  //设置了4列
        gridBagLayout.rowHeights = new int[]{0, 0};   //设置了2行
        gridBagLayout.columnWeights = new double[]{0.25,0.25,0.25,0.25};
        gridBagLayout.rowWeights = new double[]{0.2,0.8};
        setLayout(gridBagLayout);
        
        JPanel panel = new JPanel();
        panel.setBackground(Color.PINK);
        GridBagConstraints gbc_panel = new GridBagConstraints();
        gbc_panel.insets = new Insets(0, 0, 5, 0);
        gbc_panel.fill = GridBagConstraints.BOTH;
        gbc_panel.gridx = 3;
        gbc_panel.gridy = 0;
        add(panel, gbc_panel);
        
        JPanel panel_1 = new JPanel();
        panel_1.setBackground(Color.ORANGE);
        GridBagConstraints gbc_panel_1 = new GridBagConstraints();
        gbc_panel_1.insets = new Insets(0, 0, 0, 5);
        gbc_panel_1.fill = GridBagConstraints.BOTH;
        gbc_panel_1.gridx = 0;
        gbc_panel_1.gridy = 1;
        add(panel_1, gbc_panel_1);

    }
}

运行结果为:

 

추천

출처www.cnblogs.com/liyuanhong/p/12127836.html