内部のデータ形式にあわせて以下のクラスを作成します。
DataManager(行動予定表データを保持するクラス)
UserRecord(1レコード情報を保持するクラス)
上記2つのクラスの雛型生成は、クラス生成ウィザードを用いて行います。以下のように行います。
最初にユーザ定義型"DataManager"を作成します。この"DataManager"では、シリアライズを使用するので、java.io.Serializableをインプリメントする必要があります。
Interstage Studioのメイン画面で、 [ファイル]メニューの[新規] > [クラス]を選択します。[新規]画面が表示されます。
設定する項目は以下のとおりです。 (インターフェース追加についての説明はこの下です)
項目 | 説明 |
---|---|
ソースフォルダ | board/src(デフォルト値) |
パッケージ名 | board(パッケージ名を入力する) |
エンクロージング型 | チェックなし(デフォルト値) |
名前 | DataManager(作成するクラス名を入力する) |
修飾子 | publicにチェックをいれる(デフォルト値) |
スーパークラス | java.lang.Object (デフォルト値) |
インターフェース | インプリメントするインターフェースを追加する |
作成するメソッドスタブの選択 | 継承された抽象メソッドにチェックをいれる(デフォルト値) |
コメントの生成 | チェックなし(デフォルト値) |
インプリメントするインタフェースを追加するため、[追加]ボタンを押します。以下の画面が表示されます。
画面が表示されたら入力フィールドに、"Serializable"と入力してください。
インプリメントするインタフェースを入力するか[一致する項目]より選択します。
クラス名(実際はインタフェース名)が確定したら、[OK]を押します。
[完了]ボタンをクリックします。Javaソースが生成されます。
生成されたソース"DataManager.java"を、Interstage Studioで編集を行い、赤字の個所を追加します。
DataManager.java
package board; import java.io.Serializable; import java.util.Vector;
import com.fujitsu.uji.compo.ComboBox; public class DataManager implements Serializable { Vector data; //課員情報(レコード)を要素とするVectorで保存
public DataManager() {
// 以下に初期化する手続きを記述してください。
prepareData();
}
//課員レコード数の取得(課員数)
public int getRecordCount() {
return data.size();
}
//指定した課員の情報を取得する
public UserRecord getRecord(int index) {
return (UserRecord)data.elementAt(index);
}
//データが保存されたファイルが存在しないときに、
//内部のstatic変数で一覧表データを初期化するメソッド
private void prepareData() {
data = new Vector();
for(int i = 0; i < initialData.length; i++) {
UserRecord bean = new UserRecord(initialData[i]);
data.addElement(bean);
}
}
//課員名をキーとしてdm内を検索して、新しいデータで更新する
public void update(UserRecord record){
String key = record.getName();
for(int i=0; i < getRecordCount(); i++ ){
String name = getRecord(i).getName();
if(name.equals(key)){
data.set(i, record);
}
}
}
//課員名をキーとしてdm内を検索してUserScheduleBeanにデータを設定する
public UserScheduleBean obtainUserSchedule(ProfileBean dataBean){
//課員名の取得
ComboBox username = dataBean.getUsername();
int selected = username.getSelectedIndex();
String user = username.getTextAt(selected);
//空のBeanを作成して、データをセット
UserScheduleBean userScheBean = new UserScheduleBean();
for(int i=0; i < getRecordCount();i++ ){
UserRecord curRecord = getRecord(i);
if(curRecord.getName().equals(user)){
userScheBean.getName().setText(curRecord.getName());
userScheBean.getDestination().setText(curRecord.getDestination());
userScheBean.getHour().setText(curRecord.getHour());
userScheBean.getMinute().setText(curRecord.getMinute());
userScheBean.getMemo().setText(curRecord.getMemo());
}
}
return userScheBean;
}
//一覧表データファイルが存在しないときの初期化用データ
private static final String initialData[][] = {
{ "佐藤","第二会議室","16","00",""},
{ "伊藤","レビュー卓","14","00",""},
{ "鈴木","休み","","","風邪"},
{ "中村","在室","","",""},
}; }
UserRecord.javaに関しては、下記のコードをそのまま利用してください。DataManagerと同様にして空のクラスを作成後に、コピーアンドペーストで貼りつけてください。
UserRecord.java
package board; import java.io.Serializable; public class UserRecord implements Serializable{ // protected String name; protected String destination; protected String hour; protected String minute; protected String memo; //レコード情報の初期化 public UserRecord(String[] data){ name = data[0]; destination = data[1]; hour = data[2]; minute = data[3]; memo = data[4]; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDestination() { return destination; } public void setDestination(String destination) { this.destination = destination; } public String getHour() { return hour; } public void setHour(String hour) { this.hour = hour; } public String getMinute() { return minute; } public void setMinute(String minute) { this.minute = minute; } public String getMemo() { return memo; } public void setMemo(String memo) { this.memo = memo; } }
以上でユーザ定義クラスと、表一覧データを保存するクラスができました。