WindowBuilder JFrame アプリケーションプロジェクト (3)

  入力チェック





001.private class UpdateAction extends AbstractAction {
002.    public UpdateAction() {
003.        putValue(NAME, "更新");
004.        putValue(SHORT_DESCRIPTION, "Some short description");
005.    }
006.    public void actionPerformed(ActionEvent e) {
007.        // 必須チェック
008.        String inputString = null;
009.        inputString = syainName.getText();
010.        inputString = inputString.replaceAll(" ", "");  // 漢字スペースを除去
011.        if ( inputString.trim().equals("") ) {  // スペースを除去してなにも無い場合
012.            JOptionPane.showMessageDialog(
013.                    contentPane,
014.                    "必須入力です",
015.                    "エラー",
016.                    JOptionPane.ERROR_MESSAGE);
017.            syainName.setText("");  // 空白文字があっても無いようにする
018.            syainName.requestFocusInWindow();
019.            syainName.selectAll();
020.            return;
021.        }
022.         
023.        // 文字数チェック
024.        int len = 0;
025.        len = (syainName.getText()).length();
026.        if ( len > 50 ) {
027.            JOptionPane.showMessageDialog(
028.                    contentPane,
029.                    "文字数が長すぎます",
030.                    "エラー",
031.                    JOptionPane.ERROR_MESSAGE);
032.            syainName.requestFocusInWindow();
033.            syainName.selectAll();
034.            return;
035.        }
036. 
037.        // 数値チェック
038.        int num = 0;
039.        try {
040.            num = Integer.parseInt(syainSyozoku.getText());
041.        } catch (Exception ex) {
042.            num = -1;
043.        }
044.        if ( num < 0 ) {
045.            JOptionPane.showMessageDialog(
046.                    contentPane,
047.                    "正しい数字を入力して下さい",
048.                    "エラー",
049.                    JOptionPane.ERROR_MESSAGE);
050.            syainSyozoku.requestFocusInWindow();
051.            syainSyozoku.selectAll();
052.            return;
053.        }
054.         
055.        // 日付チェック
056.        String birth = syainBirth.getText();
057.        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
058.        dateFormat.setLenient(false);
059.        Date date = null;
060.        try {
061.            date = dateFormat.parse(birth);
062.        } catch (Exception ex) {
063.            date = null;
064.        }
065.        if ( date == null ) {
066.            JOptionPane.showMessageDialog(
067.                    contentPane,
068.                    "日付が正しくありません",
069.                    "エラー",
070.                    JOptionPane.ERROR_MESSAGE);
071.            syainBirth.requestFocusInWindow();
072.            syainBirth.selectAll();
073.            return;
074.        }
075.         
076.        if ( !rdbms.getConnect() ) {
077.            JOptionPane.showMessageDialog(
078.                    contentPane,
079.                    "データベースに接続できませんでした\nシステム管理者に連絡してください",
080.                    "エラー",
081.                    JOptionPane.ERROR_MESSAGE);
082.            syainCode.requestFocusInWindow();
083.            syainCode.selectAll();
084.            return;
085.        }
086.         
087.        // 参照チェック
088.        try {
089.             
090.            rdbms.stmt = rdbms.con.createStatement();
091.            String scode = syainSyozoku.getText();
092.            String query = "";
093.            query += "select *";
094.            query += " from コード名称マスタ";
095.            query += " where コード名称マスタ.区分 = 2";
096.            query += " and コード  = '" + scode + "'";            
097.            System.out.println(query);
098.            rdbms.rset = rdbms.stmt.executeQuery ( query );
099.            if ( rdbms.rset.next() ) {
100.                syainSyozokuName.setText(rdbms.rset.getString( "名称" ));
101.            }
102.            else {
103.                JOptionPane.showMessageDialog(
104.                        contentPane,
105.                        "入力したコードは存在しませんでした",
106.                        "エラー",
107.                        JOptionPane.ERROR_MESSAGE);
108.                syainSyozoku.requestFocusInWindow();
109.                syainSyozoku.selectAll();
110.                rdbms.close();
111.                return;
112.            }
113.             
114.        } catch (Exception ex) {
115.            ex.printStackTrace();
116.        }              
117.         
118.        // ここに更新処理を記述する
119.         
120.        rdbms.close();
121.    }
122.}

関連する記事















  infoboard   管理者用   





フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ