Java AWT レイアウトマネージャ CardLayout

CardLayoutは組み込んだコントロールの中から1つだけを表示するレイアウトマネージャです。
カードを切り替えるように、一つのカードだけを画面に表示し、前後のカードに移動しながら表示を切り替えていきます。
カードを入れ替えるには next()、previous()、first()、last()、show() などのメソッドを用います。

package MyPackage1;

import java.awt.*;
import java.awt.event.*;

public class CardLayoutSample {
/*
* エントリポイント
*/
public static void main(String args[]){
new CardLayoutSample();
}

Frame frm;
Panel pnlMove;
Panel pnlCards;
CardLayout cl;

/*
* コンストラクタ
*/
public CardLayoutSample(){
//フレームを作成します。
frm = new Frame("CardLayoutSample");
//フレームサイズを指定します。
frm.setSize(300,300);  
//無名クラスを使用してフレームを閉じます。
frm.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent ev){
System.exit(0);
}
});
//***移動ボタン用パネルを作成します***//  
pnlMove = new Panel();  
pnlMove.setLayout(new FlowLayout());  
//--ボタンFirst  
Button btn1 = new Button("First");   
pnlMove.add(btn1);  
btn1.addActionListener(new moveBtnActionAdapter());  
btn1.setActionCommand("First");  
//--ボタンPrevious  
Button btn2 = new Button("Previous");   
pnlMove.add(btn2);  
btn2.addActionListener(new moveBtnActionAdapter());  
btn2.setActionCommand("Previous");  
//--ボタンNext  
Button btn3 = new Button("Next");    
pnlMove.add(btn3);  
btn3.addActionListener(new moveBtnActionAdapter());  
btn3.setActionCommand("Next");  
//--ボタンLast  
Button btn4 = new Button("Last");    
pnlMove.add(btn4);  
btn4.addActionListener(new moveBtnActionAdapter());  
btn4.setActionCommand("Last");  
//パネルをFrameに追加します。 
frm.add(pnlMove,BorderLayout.NORTH );  

//***カードパネルを作成します***//  
pnlCards = new Panel();  
this.cl = new CardLayout();  
pnlCards.setLayout(cl);  
//--カード1  
Panel pnlCard1 = new Panel();  
pnlCard1.add(new Label("Card1"));  
pnlCards.add(pnlCard1,"Card1");  
//--カード2  
Panel pnlCard2 = new Panel();  
pnlCard2.add(new Label("Card2"));  
pnlCards.add(pnlCard2,"Card2");  
//--カード3  
Panel pnlCard3 = new Panel();  
pnlCard3.add(new Label("Card3"));  
pnlCards.add(pnlCard3,"Card3");  
//--カード4  
Panel pnlCard4 = new Panel();  
pnlCard4.add(new Label("Card4"));  
pnlCards.add(pnlCard4,"Card4");  
//フレームにパネルを追加します。
frm.add(pnlCards,BorderLayout.CENTER);  
//pnlCardsの「Card2」を表示します。  
cl.show(pnlCards, "Card2");  

//ウインドウを表示します。
frm.setVisible(true); 
}

/*
* 移動ボタンActionListener
*/
public class moveBtnActionAdapter implements ActionListener {
@Override
public void actionPerformed(ActionEvent arg0) {
String cmd = arg0.getActionCommand();
if (cmd.equals("First")){
cl.first(frm);
}else if (cmd.equals("Previous")){
cl.previous(frm);
}else if (cmd.equals("Next")){
cl.next(frm);
}else if (cmd.equals("Last")){
cl.last(frm);
}

}

}
}


Java AWT レイアウトマネージャ GridBagLayout

GridBagLayoutはコンテナの配置に関する情報を管理するGridBagConstraintsクラスのインスタンスを使ってコントロールを配置していきます。

package MyPackage1;

import java.awt.*;
import java.awt.event.*;

public class GridBagLayoutSample extends Frame{

/**
* エントリポイント
*/
public static void main(String args[]){
new GridBagLayoutSample();
}

/**
* 
*/
private static final long serialVersionUID = 1L;

/**
* コンストラクタ
*/
public GridBagLayoutSample(){  
//フレームタイトルを指定します。
this.setTitle("GridBagLayoutSample");
//フレームサイズを指定します。 
this.setSize(300,300);  
//無名クラスでウインドウを閉じる  
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent ev){
System.exit(0);
} 
});  
//GridBagLayoutオブジェクトを作成する  
GridBagLayout gbl = new GridBagLayout();  
//レイアウトをGridBagLayoutに設定します  
this.setLayout(gbl);  
//GridBagConstraintsオブジェクトを作成する  
GridBagConstraints gbc = new GridBagConstraints();  
//Button1  
Button btn1 = new Button("Button1");  
gbc.fill = GridBagConstraints.BOTH;  
gbc.gridx = 0;  
gbc.gridy = 0;  
gbc.gridwidth = 1;  
gbc.gridheight = 1;  
gbl.setConstraints(btn1, gbc);  
this.add(btn1);  
//Button2  
Button btn2 = new Button("Button2");  
gbc.fill = GridBagConstraints.BOTH;  
gbc.gridx = 0;  
gbc.gridy = 1;  
gbc.gridwidth = 1;  
gbc.gridheight = 1;  
gbl.setConstraints(btn2, gbc);  
this.add(btn2);  
//Button3  
Button btn3 = new Button("Button3");  
gbc.fill = GridBagConstraints.BOTH;  
gbc.gridx = 0;  
gbc.gridy = 2;  
gbc.gridwidth = 1;  
gbc.gridheight = 1;  
gbl.setConstraints(btn3, gbc);  
this.add(btn3);  
//Button4  
Button btn4 = new Button("Button4");  
gbc.fill = GridBagConstraints.BOTH;  
gbc.gridx = 1;  
gbc.gridy = 0;  
gbc.gridwidth = 1;  
gbc.gridheight = 3;  
gbl.setConstraints(btn4, gbc);  
this.add(btn4);  

//ウインドウを表示する  
this.setVisible(true);   
}  

} 

Java AWT レイアウトマネージャ GridLayout

GridLayout は、コンテナを縦横に分割し左上から横方向に順番にコントロールを組み込んでいきます。

package MyPackage1;

import java.awt.*;
import java.awt.event.*;

public class GridLayoutSample {

/*
* エントリーポイント
*/
public static void main(String args[]){
new GridLayoutSample();
}

/*
* コンストラクタ
*/
public GridLayoutSample(){
//フレームを作成します。
Frame frm = new Frame("GridLayoutSample");
//フレームサイズを指定します。  
frm.setSize(300,300);  
//無名クラスを使用してFrameを閉じます。
frm.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent ev){
System.exit(0);
}
});
//レイアウトを設定します。(3行4列)
frm.setLayout(new GridLayout(3,4));
//ボタンを追加します。
for (int idx = 0; idx < 10; idx++){  
frm.add(new Button("Button" + Integer.toString(idx)));  
}
//フレームを表示します。
frm.setVisible(true);   
}
}

Java AWT レイアウトマネージャ FlowLayout

FlowLayout は、コントロールを追加した順番に横一列に並べて配置します。1列で配置しきれない場合は折り返して配置されます。

package MyPackage1;

import java.awt.*;
import java.awt.event.*;

public class FlowLayoutSample {
/*
* エントリポイント
*/
public static void main(String args[]){
new FlowLayoutSample();
}

/*
* コンストラクタ
*/
public FlowLayoutSample(){
//フレームを作成します。
Frame frm = new Frame("FlowLayoutSample");
//フレームサイズを指定します。
frm.setSize(300,300);
//無名クラスを使用してFrameを閉じます。
frm.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent ev){
System.exit(0);
}
});
//レイアウトを設定します。
frm.setLayout(new FlowLayout());
//フレームにボタンを追加します。
for(int idx=0; idx<10; idx++){
frm.add(new Button("Button" + Integer.toString(idx)));
}
//フレームを表示します。
frm.setVisible(true);
}
}

Java AWT レイアウトマネージャ BorderLayout

BorderLayout は、画面を上下左右中の 5つのブロックに分け、それぞれに部品を配置します。5つのブロックはそれぞれ、東西南北中央(East, West, South, North, Center)で示されます。

package MyPackage1;

import java.awt.*;
import java.awt.event.*;

public class BorderLayoutSample {
/*
* エントリポイント
*/
public static void main(String args[]){
new BorderLayoutSample();
}

/*
* コンストラクタ
*/
public BorderLayoutSample(){
//フレームを作成します。
Frame frm = new Frame();
//フレームタイトルを指定します。
frm.setTitle("BorderLayoutSample");
//フレームサイズを指定します。
frm.setSize(300,300);
//無名クラスを使用してFrameを閉じます。
frm.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent ev){
System.exit(0);
}
});
//BorderLayoutを使用してボタンを配置します。 
frm.add(new Button("NORTH"),BorderLayout.NORTH);
frm.add(new Button("WEST"),BorderLayout.WEST);
frm.add(new Button("SOUTH"),BorderLayout.SOUTH);
frm.add(new Button("EAST"),BorderLayout.EAST);
frm.add(new Button("CENTER"),BorderLayout.CENTER);
//フレームを表示します。
frm.setVisible(true);  
}
}


Java AWT Buttonコンポーネント

Buttonが押された時のイベントを処理するにはActionListenerを使用します。
package MyPackage1;

import java.awt.*;
import java.awt.event.*;

public class ButtonSample01 {

/*
* エントリポイント
*/
public static void main(String args[]){
new ButtonSample01();
}

Button btn1;

/*
* コンストラクタ
*/
public ButtonSample01(){
//フレームを作成します。
Frame frm = new Frame();
//フレームタイトルを指定します。
frm.setTitle("ButtonSample01");
//フレームサイズを指定します。
frm.setSize(300,300);
//無名クラスを使用してFrameを閉じます。
frm.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent ev){
System.exit(0);
}
});
//ボタンコンポーネントを作成します。
btn1 = new Button("Button1");
//ボタンのActionListenerを追加します。
btn1.addActionListener(new btn1ActionAdapter());
//フレームにボタンを追加します。
frm.add(btn1);
//フレームを表示します。
frm.setVisible(true);  
}

/*
* btn1のActionListener
*/
private class btn1ActionAdapter implements ActionListener{
@Override
public void actionPerformed(ActionEvent arg0) {
btn1.setLabel("Clicked");
}
}
}




無名クラスを利用して下記のように書き換えることもできます。
package MyPackage1;

import java.awt.*;
import java.awt.event.*;

public class ButtonSample02 {
/*
* エントリポイント
*/
public static void main(String args[]){
new ButtonSample02();
}

Button btn1;

/*
* コンストラクタ
*/
public ButtonSample02(){
//フレームを作成します。
Frame frm = new Frame();
//フレームタイトルを指定します。
frm.setTitle("ButtonSample02");
//フレームサイズを指定します。
frm.setSize(300,300);
//無名クラスを使用してFrameを閉じます。
frm.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent ev){
System.exit(0);
}
});
//ボタンコンポーネントを作成します。
btn1 = new Button("Button1");
//ボタンのActionListenerを追加します。
btn1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
btn1.setLabel("Clicked");    
}
});
//フレームにボタンを追加します。
frm.add(btn1);
//フレームを表示します。
frm.setVisible(true);  
}
}

Java AWT Labelコンポーネント

package MyPackage1;

import java.awt.*;
import java.awt.event.*;

public class LabelSample {

/*
* エントリポイント
*/
public static void main(String args[]){
new LabelSample();
}

/*
* コンストラクタ
*/
public LabelSample(){
//フレームを作成します。
Frame frm = new Frame();
//フレームタイトルを指定します。
frm.setTitle("LabelSample");
//フレームサイズを指定します。
frm.setSize(300,300);
//無名クラスを使用してFrameを閉じます。
frm.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent ev){
System.exit(0);
}
});
//ラベルコンポーネントを作成します。
Label lbl1 = new Label();
lbl1.setText("Hello Java");
//フレームにラベルに追加します。
frm.add(lbl1);
//フレームを表示します。
frm.setVisible(true);  
}

}