Java AWT Listコンポーネント

一覧リストから項目を選択するためのコンポーネントです。
項目選択時はItemListenerクラスのitemStateChangedメソッドが発生します。
項目ダブルクリック時はActionListenerクラスのActionEventが発生します。
package MyPackage1;

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

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

Frame frm;
List lst1;
Label lbl1;

/*
* コンストラクタ
*/
public ListSample(){
//フレームを作成します。
frm = new Frame("ListSample");
frm.setSize(300,300);
frm.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent ev){
System.exit(0);
}
});
//リストを作成します。
lst1 = new List();
//複数選択可能に設定します。
lst1.setMultipleMode(true);
//リストに項目を追加します。
lst1.add("Brue");
lst1.add("Red");
lst1.add("Green");
lst1.add("Black");
lst1.add("White");
lst1.addItemListener(new lst1ItemAdapter());
//ラベルを作成します。
lbl1 = new Label();
//フレームにレイアウトを設定します。
frm.setLayout(new GridLayout(2,1));
//フレームにコンポーネントを追加します。
frm.add(lbl1);
frm.add(lst1);
//フレームを表示します。
frm.setVisible(true);
}

/*
* lst1のItemListener
*/
private class lst1ItemAdapter implements ItemListener{

@Override
public void itemStateChanged(ItemEvent e) {
String selectedStr = "";
for (int idx=0; idx < lst1.getItemCount(); idx++){
if (lst1.isIndexSelected(idx)){
selectedStr += String.valueOf(idx) + ":" + lst1.getItem(idx) + " "; 
}
}
lbl1.setText(selectedStr);
}

}
}

Java AWT Choiceコンポーネント(コンボボックス)

項目の選択時、ItemListenerクラスのitemStateChangedメソッドが発生します。

package MyPackage1;

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


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

Frame frm;
Choice chc1;
Label lbl1;

/*
* コンストラクタ
*/
public ChoiceSample(){
//フレームを作成します。
frm = new Frame("ChoiceSample");
frm.setSize(300,300);
frm.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent ev){
System.exit(0);
}
});
//Choiceを作成します。
chc1 = new Choice();
chc1.add("Brue");
chc1.add("Red");
chc1.add("Green");
chc1.add("Black");
chc1.add("White");
chc1.addItemListener(new chs1ItemAdapter());
//ラベルを作成します。
lbl1 = new Label();
//フレームのレイアウトを設定します。
frm.setLayout(new GridLayout(2,1));
//フレームにコンポーネントを追加します。
frm.add(lbl1);
frm.add(chc1);
//フレームを表示します。
frm.setVisible(true);

}

/*
* chc1のItemListener
*/
private class chs1ItemAdapter implements ItemListener{
@Override
public void itemStateChanged(ItemEvent e) {
//項目選択時に発生します。
int selectedIdx = chc1.getSelectedIndex();
String selectedStr = chc1.getSelectedItem();
lbl1.setText(selectedIdx + ":" + selectedStr);
}
}
}


Java AWT TextAreaコンポーネント

複数行入力用のコンポーネントです。
Enterキーで改行するため、ActionListener.actionPerformedメソッドは発生しません。
指定した行数および列数は、表示の際の最適サイズなどの計算にのみ使用しており、入力制限を行うものではありません。

package MyPackage1;

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

public class TextAreaSample {

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

Frame frm;
TextArea ta1;
/*
* コンストラクタ
*/
public TextAreaSample(){
//Fフレームを作成します。
frm = new Frame("TextAreaSample");
frm.setSize(300,300);
frm.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent ev){
System.exit(0);
}
});
//テキストエリアコンポーネントを作成します。
ta1 = new TextArea(10,20);
//フレームにコンポーネントを追加します。
frm.add(ta1,BorderLayout.NORTH);
//フレームを表示します。
frm.setVisible(true);
}

}

Java AWT TextFieldコンポーネント

1行だけのテキストを扱うためのコンポーネントです。

Enterキーを押すとActionListenerクラスのActionEventメソッドが呼ばれます。
キーイベントは、KeyListenerクラスのkeyPressedメソッド、keyReleasedメソッド、keyTypedメソッドが呼ばれます。
テキストの値が変更されるとTextListenerクラスのtextValueChangedメソッドが呼ばれます。


package MyPackage1;

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

public class TextFieldSample {

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

TextField txt1;
Label lbl1;
Label lbl2;
Label lbl3;
Panel p1;

/*
* コンストラクタ
*/
public TextFieldSample(){
//Frameを作成します。
Frame frm = new Frame("TextFieldSample");
frm.setSize(300,300);
frm.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent ev){
System.exit(0);
}
});
//TextFieldを作成しイベントリスナーを追加します。
txt1 = new TextField();
txt1.addActionListener(new txt1ActionAdapter());
txt1.addKeyListener(new txt1KeyAdapter());
txt1.addTextListener(new txt1TextAdapter());
//ラベルを作成します。
lbl1 = new Label();
lbl2 = new Label();
lbl3 = new Label();
//パネルを作成し、コンポーネントを追加します。
p1 = new Panel();
p1.setLayout(new GridLayout(3,1));
p1.add(lbl1);
p1.add(lbl2);
p1.add(lbl3);
//コンポーネントを追加します。
frm.add(txt1,BorderLayout.NORTH);
frm.add(p1,BorderLayout.CENTER);
//Frameを表示します。
frm.setVisible(true);
}

/*
* txt1のActionListener
*/
private class txt1ActionAdapter implements ActionListener{
public void actionPerformed(ActionEvent ev) {
//Enterキーが押された時に呼ばれます。
lbl2.setText("actionPerformed:" + txt1.getText());
}
}
/*
* txt1のKeyListener
*/
private class txt1KeyAdapter implements KeyListener{
@Override
public void keyPressed(KeyEvent ev) {
//キーが押された時に呼ばれます。
lbl1.setText("keyPressed:" + String.valueOf(ev.getKeyChar()));
}

@Override
public void keyReleased(KeyEvent ev) {
//キーが離された時に呼ばれます。
}

@Override
public void keyTyped(KeyEvent ev) {
//キーがタイプされた時に呼ばれます。
}

}
/*
* txt1のTextListener
*/
private class txt1TextAdapter implements TextListener{

@Override
public void textValueChanged(TextEvent arg0) {
//テキストの値が変更した時に呼ばれます。
lbl3.setText("ValueChanged:"+ txt1.getText());
}

}

}


Java AWT CheckboxGroupコンポーネント(ラジオボタン)

AWTにはラジオボタンのためのクラスはありません。
CheckboxクラスをCheckboxGroupクラスでグループ化すると、常に一つだけが選択された状態となるラジオボタンになります。

CheckboxGroup.getSelectedCheckboxメソッドでグループ内でチェックONのCheckboxを取得します。

package MyPackage1;

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

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

Frame frm;

Panel pnl1;
CheckboxGroup chkGroup;
Checkbox chk1;
Checkbox chk2;
Checkbox chk3;

Panel pnl2;
Label lbl1;

/*
* コンストラクタ
*/
public CheckboxGroupSample(){
//フレームを作成します。
frm = new Frame("CheckboxGroupSample");
//フレームのサイズを指定します。
frm.setSize(300,300);
//無名クラスを使用してフレームを閉じます。
frm.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent ev){
System.exit(0);
}
});
//チェックボックスグループを作成します。
chkGroup = new CheckboxGroup();
//チェックボックスを作成します。
chk1 = new Checkbox("Blue");
chk1.setCheckboxGroup(chkGroup);
chk1.setState(false);
chk2 = new Checkbox("Red",chkGroup,false);
chk3 = new Checkbox("Green",chkGroup,false);
//チェックボックスにItemListenerを追加します。
chk1.addItemListener(new chkItemAdapter());
chk2.addItemListener(new chkItemAdapter());
chk3.addItemListener(new chkItemAdapter());
//パネルを作成します。
pnl1 = new Panel();
pnl1.setLayout(new GridLayout(1,3));
//パネルにコンポーネントを追加します。
pnl1.add(chk1);
pnl1.add(chk2);
pnl1.add(chk3);
//ラベルを作成します。
lbl1 = new Label();
//フレームにコンポーネントを追加します。
frm.setLayout(new GridLayout(2,1));
frm.add(pnl1);
frm.add(lbl1);
//フレームを表示します。
frm.setVisible(true);
}

/*
* chkItemListener
*/
private class chkItemAdapter implements ItemListener{
@Override
public void itemStateChanged(ItemEvent arg0) {
Checkbox chkSelected = chkGroup.getSelectedCheckbox();
if (chkSelected != null ){
lbl1.setText("Selected:" + chkSelected.getLabel());
} 
}
}
}



Java AWT CheckBoxコンポーネント

チェックボックスの選択変更イベントはItemListenerクラスのItemStateChangedメソッドで処理します。

package MyPackage1;

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

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

Checkbox chk1;
Checkbox chk2;
Checkbox chk3;
Label lbl1;
Label lbl2;
Label lbl3;
Panel pnl1;
Panel pnl2;

/*
* コンストラクタ
*/
public CheckBoxSample(){
//フレームを作成します。
Frame frm = new Frame("CheckBoxSample");
//フレームサイズを指定します。
frm.setSize(300,300);
//無名クラスを使用してフレームを閉じます。
frm.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent ev){
System.exit(0);
}
});
//チェックボックスを作成します。
chk1 = new Checkbox("Blue");
chk2 = new Checkbox("Red");
chk3 = new Checkbox("Green");
//チェックボックスにItemListenerを追加します。
chk1.addItemListener(new chk1ItemAdapter());
chk2.addItemListener(new chk2ItemAdapter());
chk3.addItemListener(new chk3ItemAdapter());
//パネルを作成します。
pnl1 = new Panel();
pnl1.setLayout(new GridLayout(1,3));
//パネルにコンポーネントを追加します。
pnl1.add(chk1);
pnl1.add(chk2);
pnl1.add(chk3);
//ラベルを作成します。
lbl1 = new Label();
lbl2 = new Label();
lbl3 = new Label();
//パネルを作成します。
pnl2 = new Panel();
pnl2.setLayout(new GridLayout(1,3));
//パネルにコンポーネントを追加します。
pnl2.add(lbl1);
pnl2.add(lbl2);
pnl2.add(lbl3);
//
frm.setLayout(new GridLayout(2,1));
frm.add(pnl1);
frm.add(pnl2);
//
frm.setVisible(true);
}
/*
* chk1ItemListener
*/
private class chk1ItemAdapter implements ItemListener{
@Override
public void itemStateChanged(ItemEvent arg0) {
if (chk1.getState()==true){
lbl1.setText(chk1.getLabel());
}else{
lbl1.setText("");
}   
}
}
/*
* chk2ItemListener
*/
private class chk2ItemAdapter implements ItemListener{
@Override
public void itemStateChanged(ItemEvent arg0) {
if (chk2.getState()==true){
lbl2.setText(chk2.getLabel());
}else{
lbl2.setText("");
}   
}
}
/*
* chk3ItemListener
*/
private class chk3ItemAdapter implements ItemListener{
@Override
public void itemStateChanged(ItemEvent arg0) {
if (chk3.getState()==true){
lbl3.setText(chk3.getLabel());
}else{
lbl3.setText("");
}   
}
}
}


Java AWT レイアウトマネージャを使用しない

レイアウトマネージャを使用しない場合はsetLayoutメソッドにnullを指定します。
コントロールの位置や大きさはsetBoundsメソッドで指定します。

package MyPackage1;

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

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

/*
* コンストラクタ
*/
public NoLayoutManagerSample(){
//フレームを作成します。
Frame frm = new Frame("NoLayoutManagerSample");
//フレームサイズを指定します。
frm.setSize(300,300);
//無名クラスを使用してフレームを閉じます。
frm.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent ev){
System.exit(0);
}
});
//レイアウトを設定します。
frm.setLayout(null);
//位置と大きさを指定してボタンを配置します。
for (int idx=0; idx<5; idx++){
Button btn = new Button("Button" + Integer.toString(idx));
btn.setBounds(new Rectangle(idx*25+50,idx*25+50,50,20));
frm.add(btn);
}
//フレームを表示します。
frm.setVisible(true);

}
}