線形探索で対象データを探し出し、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 件のコメント:
コメントを投稿