菜鳥プログラミングのjavaチェック漏れ--GridBagLayoutレイアウト

6432 ワード

GridBagLayoutクラスで管理されているコンテナにコンポーネントを追加する場合は、各コンポーネントに関連付けられたGridBagContrainsクラスのオブジェクトを作成し、そのクラスのプロパティでコンポーネントのレイアウト情報を設定する必要があります.
 
GridBagConstraints共通フィールド:
 
(1)gridxとgridy
gridx:コンポーネントを含む表示領域の開始エッジのセルを指定します.行の最初のセルはgridx=0です.
gridy:コンポーネント表示領域の上部にあるセルを指定します.一番上のセルはgridy=0です.
 
(2)gridwidthとgridheight
gridwidth:コンポーネント表示領域の行のセル数を指定します.
gridheight:コンポーネント表示領域の列にあるセルの数を指定します.
 
(3)insets
insets:コンポーネントの外部充填、すなわち、コンポーネントとその表示領域のエッジとの間隔の最小量を指定します.
//上辺、左辺、下辺、右辺の間隔はそれぞれ1、2、3、4
gridBagConstraints.insets=new Insets(1,2,3,4);
 
(4)fill
このフィールドは、コンポーネントの表示領域が要求された表示領域より大きい場合に使用します.コンポーネントのサイズを調整するかどうか、必要に応じてどのように調整するかを決定します.すなわち、セルの表示領域の面積がコンポーネントの面積より大きい場合、または1つのコンポーネントが複数のセルを占有する場合、表示コンポーネントがすべての表示領域を占有する必要がない場合、fillプロパティを使用してコンポーネントの充填方法を設定します.
  • NONE:コンポーネントのサイズは調整されません.
  • HORIZONTAL:コンポーネントを水平方向に表示領域を満たすように拡大しますが、高さは変更されません.
  • VERTICAL:コンポーネントを垂直方向に表示領域を満たすように高くしますが、幅は変更されません.
  • BOTH:コンポーネントが表示領域を完全に満たす.

  • (5)ipadxとipady
    ipadx:コンポーネントの内部充填を指定します.すなわち、コンポーネントの最小幅にどれだけのスペースを追加するかを指定します.
    ipady:コンポーネントの最小高さにどれだけのスペースを追加するかを指定します.
     
    import java.awt.Container;
    import java.awt.Dimension;
    import java.awt.GridBagConstraints;
    import java.awt.GridBagLayout;
    import java.awt.GridLayout;
    import java.awt.Toolkit;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    
    /*
     *    GridBagLayout            ,             
     *    GridBagContrains    ,                
     */
    
    public class Test_GridBagLayout extends JFrame{
    
    	JButton []button;
    	JPanel panel1,panel2,panel3;
    	
    	GridBagLayout gridBag=new GridBagLayout();
    	GridBagConstraints gridBagCon;
    	
    	public Test_GridBagLayout(){
    		initFrame();
    		Dimension faceSize=new Dimension(400,600);
    		this.setSize(faceSize);
    		//         
    		Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();
    		this.setLocation((int)(screenSize.width-faceSize.width)/2,
    				(int)(screenSize.height-faceSize.height)/2);
    		//
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		this.setVisible(true);
    	}
    	/*
    	 *      
    	 */
    	public void initFrame(){
    		//   JButton  
    		button=new JButton[11];
    		for(int i=0;i<button.length;i++){
    			button[i]=new JButton();
    		}
    		//   JPanel  
    		panel1=new JPanel();
    		panel2=new JPanel();
    		panel3=new JPanel();
    		
    		//panel1  gridx gridy
    		panel1.setLayout(gridBag);
    		// panel1   button[0];
    		button[0].setText("  A(0,0)");
    		gridBagCon=new GridBagConstraints();
    		gridBagCon.gridx=0;
    		gridBagCon.gridy=0;
    		gridBag.setConstraints(button[0], gridBagCon);
    		panel1.add(button[0]);
    		// panel1   button[1];
    		button[1].setText("  B(2,0)");
    		gridBagCon=new GridBagConstraints();
    		gridBagCon.gridx=2;
    		gridBagCon.gridy=0;
    		gridBag.setConstraints(button[1], gridBagCon);
    		panel1.add(button[1]);
    		// panel1   button[2];
    		button[2].setText("  C(1,1)");
    		gridBagCon=new GridBagConstraints();
    		gridBagCon.gridx=1;
    		gridBagCon.gridy=1;
    		gridBag.setConstraints(button[2], gridBagCon);
    		panel1.add(button[2]);
    		// panel1   button[3];
    		button[3].setText("  D(2,2)");
    		gridBagCon=new GridBagConstraints();
    		gridBagCon.gridx=2;
    		gridBagCon.gridy=2;
    		gridBag.setConstraints(button[3], gridBagCon);
    		panel1.add(button[3]);
    		
    		//panel2  gridwidth gridheight  
    		panel2.setLayout(gridBag);
    		// panel2   button[4]
    		button[4].setText("  1(2,1)");
    		gridBagCon=new GridBagConstraints();
    		gridBagCon.gridx=0;
    		gridBagCon.gridy=0;
    		gridBagCon.gridwidth=2;
    		gridBagCon.gridheight=1;
    		gridBag.setConstraints(button[4], gridBagCon);
    		panel2.add(button[4]);
    		// panel2   button[5]
    		button[5].setText("  2(1,2)");
    		gridBagCon=new GridBagConstraints();
    		gridBagCon.gridx=0;
    		gridBagCon.gridy=2;
    		gridBagCon.gridwidth=1;
    		gridBagCon.gridheight=2;
    		gridBag.setConstraints(button[5], gridBagCon);
    		panel2.add(button[5]);
    		// panel2   button[6]
    		button[6].setText("  3(2,2)");
    		gridBagCon=new GridBagConstraints();
    		gridBagCon.gridx=3;
    		gridBagCon.gridy=3;
    		gridBagCon.gridwidth=2;
    		gridBagCon.gridheight=2;
    		gridBag.setConstraints(button[6], gridBagCon);
    		panel2.add(button[6]);
    		
    		//panel3  ipadx ipady
    		panel3.setLayout(gridBag);
    		// panel3   button[7]
    		button[7].setText("  Ⅰ");
    		gridBagCon=new GridBagConstraints();
    		gridBagCon.gridx=0;
    		gridBagCon.gridy=0;
    		gridBag.setConstraints(button[7], gridBagCon);
    		panel3.add(button[7]);
    		// panel3   button[8]
    		button[8].setText("  Ⅱ");
    		gridBagCon=new GridBagConstraints();
    		gridBagCon.gridx=0;
    		gridBagCon.gridy=1;
    		gridBag.setConstraints(button[8], gridBagCon);
    		panel3.add(button[8]);
    		// panel3   button[9]
    		button[9].setText("  Ⅲ");
    		gridBagCon=new GridBagConstraints();
    		gridBagCon.gridx=1;
    		gridBagCon.gridy=0;
    		gridBag.setConstraints(button[9], gridBagCon);
    		panel3.add(button[9]);
    		// panel3   button[10]
    		button[10].setText("  Ⅳ");
    		gridBagCon=new GridBagConstraints();
    		gridBagCon.gridx=1;
    		gridBagCon.gridy=1;
    		gridBagCon.ipadx=10;
    		gridBagCon.ipady=20;
    		gridBag.setConstraints(button[10], gridBagCon);
    		panel3.add(button[10]);
    		
    		//  panel1,panel2,panel3
    		Container contentPane=this.getContentPane();
    		contentPane.setLayout(new GridLayout(3,1));
    		contentPane.add(panel1);
    		contentPane.add(panel2);
    		contentPane.add(panel3);
    	}
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    
    		new Test_GridBagLayout();
    	}
    
    }