private class UpdateAction extends AbstractAction {
public UpdateAction() {
putValue(NAME, "更新");
putValue(SHORT_DESCRIPTION, "Some short description");
}
public void actionPerformed(ActionEvent e) {
// 必須チェック
String inputString = null;
inputString = syainName.getText();
inputString = inputString.replaceAll(" ", ""); // 漢字スペースを除去
if ( inputString.trim().equals("") ) { // スペースを除去してなにも無い場合
JOptionPane.showMessageDialog(
contentPane,
"必須入力です",
"エラー",
JOptionPane.ERROR_MESSAGE);
syainName.setText(""); // 空白文字があっても無いようにする
syainName.requestFocusInWindow();
syainName.selectAll();
return;
}
// 文字数チェック
int len = 0;
len = (syainName.getText()).length();
if ( len > 50 ) {
JOptionPane.showMessageDialog(
contentPane,
"文字数が長すぎます",
"エラー",
JOptionPane.ERROR_MESSAGE);
syainName.requestFocusInWindow();
syainName.selectAll();
return;
}
// 数値チェック
int num = 0;
try {
num = Integer.parseInt(syainSyozoku.getText());
} catch (Exception ex) {
num = -1;
}
if ( num < 0 ) {
JOptionPane.showMessageDialog(
contentPane,
"正しい数字を入力して下さい",
"エラー",
JOptionPane.ERROR_MESSAGE);
syainSyozoku.requestFocusInWindow();
syainSyozoku.selectAll();
return;
}
// 日付チェック
String birth = syainBirth.getText();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
dateFormat.setLenient(false);
Date date = null;
try {
date = dateFormat.parse(birth);
} catch (Exception ex) {
date = null;
}
if ( date == null ) {
JOptionPane.showMessageDialog(
contentPane,
"日付が正しくありません",
"エラー",
JOptionPane.ERROR_MESSAGE);
syainBirth.requestFocusInWindow();
syainBirth.selectAll();
return;
}
if ( !rdbms.getConnect() ) {
JOptionPane.showMessageDialog(
contentPane,
"データベースに接続できませんでした\nシステム管理者に連絡してください",
"エラー",
JOptionPane.ERROR_MESSAGE);
syainCode.requestFocusInWindow();
syainCode.selectAll();
return;
}
// 参照チェック
try {
rdbms.stmt = rdbms.con.createStatement();
String scode = syainSyozoku.getText();
String query = "";
query += "select *";
query += " from コード名称マスタ";
query += " where コード名称マスタ.区分 = 2";
query += " and コード = '" + scode + "'";
System.out.println(query);
rdbms.rset = rdbms.stmt.executeQuery ( query );
if ( rdbms.rset.next() ) {
syainSyozokuName.setText(rdbms.rset.getString( "名称" ));
}
else {
JOptionPane.showMessageDialog(
contentPane,
"入力したコードは存在しませんでした",
"エラー",
JOptionPane.ERROR_MESSAGE);
syainSyozoku.requestFocusInWindow();
syainSyozoku.selectAll();
rdbms.close();
return;
}
} catch (Exception ex) {
ex.printStackTrace();
}
// ここに更新処理を記述する
rdbms.close();
}
}