GridBagLayoutというレイアウトマネージャを使ってコンポーネントを配置する
GridBagLayoutが一番楽だと思う

import java.awt.Component;
import java.awt.Container;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
//JFrameを拡張してMainFrmというクラスを作る。
public class MainFrm extends JFrame{
/**
*
*/
//eclipseのデフォルトの設定だと警告が出るので、
//eclipseが指示するとおりにserialVersionUIDを追加
private static final long serialVersionUID = 1L;
//プログラム起動時に最初に実行される部分
public static void main(String[] args) {
//MainFrmというフレームをMyFrmという名前で作る
MainFrm MyFrm = new MainFrm();
//フレームMyFrmを表示する。
MyFrm.setVisible(true);
}
//”new MainFrm()”したときに実行される部分
public MainFrm() {
// TODO Auto-generated constructor stub
//フレームクローズでプロセスも閉じる。
//この一行が無いとフレームを閉じてもプロセスが実行され続けるので書く
setDefaultCloseOperation(EXIT_ON_CLOSE);
//フレームのサイズ:setSize(横幅, 縦幅)
setSize(400, 300);
//フレームのタイトル
setTitle("メインフレーム");
//フレーム内のコンテナにボタンを追加
//:addComponent(コンテナ, コンポーネント, 列, 行, 幅, 高さ, 左右上下のスペース)
addComponent(getContentPane(), new JButton("ボタン1"),
0, 0, 2, 1, 2);
addComponent(getContentPane(), new JButton("ボタン2"),
0, 1, 1, 1, 2);
addComponent(getContentPane(), new JButton("ボタン3"),
1, 1, 1, 1, 2);
addComponent(getContentPane(), new JButton("ボタン4"),
2, 0, 1, 2, 2);
}
//コンテナを指定して、コンポーネントを追加する
//コンテナやコンポーネントは参照渡しされるから、ここでの編集が実際のオブジェクトに反映される
private void addComponent(Container cont, Component comp,
int x, int y, int w, int h, int space){
//コンテナのレイアウトがGridBagLayoutかどうかを判定
if(!cont.getLayout().getClass().equals(GridBagLayout.class)){
//GridBagLayoutでなければ、GridBagLayoutに設定する
cont.setLayout(new GridBagLayout());
}
//コンテナのレイアウトを取り出す
GridBagLayout gbl = (GridBagLayout)cont.getLayout();
//これから追加するコンポーネントの配置方法を指定する
GridBagConstraints gbc = new GridBagConstraints();
//コンポーネントがグリッドのセルより小さかったら、引き伸ばして表示するように設定
gbc.fill = GridBagConstraints.BOTH;
//コンポーネントを配置するセル:x列目のy行目に幅wセル、高さhセルで表示
gbc.gridx = x;
gbc.gridy = y;
gbc.gridwidth = w;
gbc.gridheight = h;
//セルの間にスペース
gbc.insets.set(space, space, space, space);
//コンポーネントに対する配置方法を登録
gbl.addLayoutComponent(comp, gbc);
//コンテナにコンポーネントを追加
cont.add(comp);
}
}
最終更新:2011年06月14日 00:45