6.2 GUI部品あれこれ: AWT部品とレイアウト

<GUI部品群AWT>

<JavaのGUI構造>

<階層的部品配置の例> <部品のクラス階層> <例4: ボタンとラベル>
ソースコード
		  
import java.applet.*;
import java.awt.*;

public class ButtonLabel extends Applet{
private int n=0;
	public void init(){
		this.add(new Button("Nagano"));
		this.add(new Label("Okinawa"));
	}
	public void start(){
		this.add(new Button("start"+n));
	}
	public void stop(){
		this.add(new Label("stop"+n));
		n++;
	}
}


<例5: テキスト入力>
ソースコード
		  
import java.applet.*;
import java.awt.*;

public class Text extends Applet{
private int n=0;
	public void init(){
		this.add(new TextField("Hello", 10));
		this.add(new TextArea(10, 20)); // line, width
	}
}


<部品のレイアウト制御>

<レイアウトの例>

<レイアウト設定の手順>



<例6: 碁盤の目に並べる>
ソースコード
		  
import java.applet.*;
import java.awt.*;

public class ButtonGrid extends Applet{
	public void init(){
		this.setLayout(new GridLayout(4,3));
		for(int i=0; i<4*3; i++)
			add(new Button("No."+i));
	}
}


<Panelで階層レイアウト>

<例7: 階層的な部品配置>

ソースコード
		  
import java.applet.*;
import java.awt.*;

public class Contain extends Applet{
	public void init(){
		add(new RContain(new RContain(new RContain(new RContain(null)))));
	}
}

		  
import java.awt.*;

public class RContain extends Panel{	
	RContain(Panel p){
		setLayout(new BorderLayout());
		add(new TextField("nagano", 10), "North");
		add(new Button("Nagano"), "South");
		if(p!=null) add(p, "Center");
		add(new Button("Okinawa"), "West");
		add(new Label("Osaka"), "East");
	}
}



実習用の各種ファイルはここから参照&ダウンロード!


2003年10月22日 6:21 更新