2012年2月4日土曜日

Java基本:Appletでのアクションリスナー設定

Javaの授業でやったアクションリスナーの処理の振り分けです。
線形探索で対象データを探し出し、add,edit,deleteをやっています。
どこのアクションリスナーが呼び出されたか、actionPerformed(ActionEvent e)で
if(e.getSource() == fafter1){
として処理を分けています。


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

public class Sec5_1_3 extends Applet implements ActionListener{

TextField fbefore1,fafter1,fbefore2, fafter2,tf;
int [] a = {5, 4, 6, 7, -5, -4, 2};

public void init(){
add(new Label("どのデータを更新しますか"));
fbefore1 = new TextField("",4);
add(fbefore1);

add(new Label("変更後の値は"));
fafter1 = new TextField("",4);
add(fafter1);
fafter1.addActionListener(this);

add(new Label("どのデータの後ろに追加しますか"));
fbefore2 = new TextField("",4);
add(fbefore2);

add(new Label("挿入するデータの値は"));
fafter2 = new TextField("",4);
add(fafter2);
fafter2.addActionListener(this);

add(new Label("どのデータを削除しますか"));
tf = new TextField("",4);
add(tf);
tf.addActionListener(this);
}

public void actionPerformed(ActionEvent e){

if(e.getSource() == fafter1){
int x = Integer.parseInt(fbefore1.getText());
int y = Integer.parseInt(fafter1.getText());


for(int i=0; i < a.length; i++){
if(a[i] == x){
a[i]=y;
break;
}
}
System.out.println("更新");
  for(int i=0; i < a.length; i++){
  System.out.print(a[i]+" ");
}
  System.out.println("");
}
else if(e.getSource() == fafter2){
int x = Integer.parseInt(fbefore2.getText());
int y = Integer.parseInt(fafter2.getText());

for(int i=0; i < a.length; i++){
if(a[i] == x){
for(int j=a.length - 1; j>i+1; j--){
a[j] = a[j-1];
}
a[i+1]=y;
break;
}
}
System.out.println("挿入");
for(int i=0; i < a.length; i++){
System.out.print(a[i]+" ");
}
System.out.println("");

}

else if(e.getSource() == tf){

int z = Integer.parseInt(tf.getText());

for(int i =0; i< a.length;i++){
if(a[i] ==z){
for(int j=i; j
a[j]  = a[j+1];
}
break;
}
}
System.out.println("削除");
for(int i=0; i < a.length; i++){
System.out.print(a[i]+" ");
}
System.out.println("");
}

}
}

0 件のコメント:

コメントを投稿