ボタンなど、ウィンドウズの部品について見ていきます。 しかし、ボタンに限らず、部品の配置について見ていきます。
ボタンを貼り付けるプログラムです。
import javax.swing.JButton; import myMath.Tpl02; public class TestJavaApplet44_1 extends Tpl02 { JButton btn1; public void init() { btn1 = new JButton("YES"); add(btn1); } }
まず、ボタン用の変数を宣言します。
JButton btn1;
次にボタンを生成します。
btn1 = new JButton("YES");
ボタンを貼り付けます。 これだけです。 ボタン以外の部品も同じです。
add(btn1);
ボタンを押してみてください。
ボタンに対し、サイズや配置の指定はできません。 これはボタンと切り離されていて、レイアウトを使います。
import java.awt.FlowLayout;
import javax.swing.JButton;
import myMath.Tpl02;
public class TestJavaApplet44_2 extends Tpl02 {
JButton btn1, btn2;
public void init() {
setLayout(new FlowLayout());
btn1 = new JButton("YES");
btn2 = new JButton("NO");
add(btn1);
add(btn2);
}
}
ボタンを2つ作りました。 画面への配置は、setLayout メソッドを使います。
setLayout(new FlowLayout());
引数には、new FlowLayout() のように指定します。 他にも次のようなものがあります。
FlowLayout : 流し込みレイアウト GridLayout : グリッドレイアウト BorderLayout : ボーダーレイアウト BorderBagLayout : ボーダーバッグレイアウト CardLayout : カードレイアウト BoxLayout : ボックスレイアウト
setLayout(new FlowLayout());
setLayout(new GridLayout(1, 2));
今度は別のレイアウトです。
import java.awt.BorderLayout; import javax.swing.JButton; import myMath.Tpl02; public class TestJavaApplet44_4 extends Tpl02 { JButton btn1, btn2; public void init() { setLayout(new BorderLayout()); btn1 = new JButton("YES"); btn2 = new JButton("NO"); add("North", btn1); add("South", btn2); } }
画面への配置は、BorderLayout メソッドを使います。
setLayout(new BorderLayout());
add メソッドの引数には、East, West, South, North, Center の5つの位置を指定します。
最後に、パネルを使ってみます。 まず、パネルにボタンを貼り付けます。 そのパネルを画面に貼り付けるのです。 これによって、柔軟に画面のレイアウトができます。
import java.awt.BorderLayout; import java.awt.GridLayout; import javax.swing.JButton; import javax.swing.JPanel; import myMath.Tpl02; public class TestJavaApplet44_5 extends Tpl02 { JPanel pnl; JButton btn1, btn2; public void init() { // パネル pnl = new JPanel(); pnl.setLayout(new GridLayout(1, 2)); btn1 = new JButton("YES"); btn2 = new JButton("NO"); pnl.add(btn1); pnl.add(btn2); // 全体 setLayout(new BorderLayout()); add("South", pnl); } }
上で説明したボタンをパネルに置き換えて考えれば同じことをしているのがわかります。 この例では、パネルはグリッドで、1行2列に区切られています。 そこへボタンを貼り付けています。 パネルは、ボーダーレイアウトされていて、南にパネルを貼り付けています。