import java.awt.*; import java.awt.event.*; public class Test { public static void main (String[] args) { Win win = new Win("Test Window"); } } class Win extends Frame { Win (String name) { // Frameクラスのコンストラクタ(Windowのタイトルを引き渡す) super(name); // Windowの大きさ setSize(400, 300); // レイアウトの変更(水平,垂直ギャップ) GridBagLayout gbl = new GridBagLayout(); setLayout(gbl); GridBagConstraints cs = new GridBagConstraints(); // 1行目,2行目 Button bt1 = new Button("ボタン1"); Button bt2 = new Button("ボタン2"); Button bt3 = new Button("ボタン3"); Button bt4 = new Button("ボタン4"); cs.weighty = 1; // 高さ cs.fill = GridBagConstraints.BOTH; // ギャップを詰める cs.gridheight = 2; // 2行にわたる cs.weightx = 1.0; gbl.setConstraints(bt1, cs); add(bt1); cs.gridheight = 1; cs.weightx = 2.0; // 幅が他のボタンの2倍 gbl.setConstraints(bt2, cs); add(bt2); cs.weightx = 1.0; cs.gridwidth = GridBagConstraints.REMAINDER; gbl.setConstraints(bt3, cs); add(bt3); cs.gridwidth = GridBagConstraints.REMAINDER; gbl.setConstraints(bt4, cs); add(bt4); // 3行目 Button bt5 = new Button("ボタン5"); cs.weighty = 20.0; // 高さが他のボタンのより高い gbl.setConstraints(bt5, cs); add(bt5); // 4行目(テキストエリア) TextArea text_a = new TextArea("Text Area", 10, 30); gbl.setConstraints(text_a, cs); add(text_a); // ウィンドウを表示 setVisible(true); // イベントアダプタ addWindowListener(new WinEnd()); } /******************************/ /* 上,左,下,右の余白の設定 */ /******************************/ public Insets getInsets() { return new Insets(35, 10, 10, 10); } /************/ /* 終了処理 */ /************/ class WinEnd extends WindowAdapter { public void windowClosing(WindowEvent e) { System.exit(0); } } }