//Sample07 import java.awt.Button; import java.awt.Dialog; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.Label; import java.awt.TextField; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class Sample07 extends Frame implements ActionListener { private static final String btnNumericCheck_code = "Integer Check"; private static final String btnNumberRangeCheck_code = "1 - 5 Check"; private static final String window_title = "数字チェックとメッセージダイアログ"; private static final int window_width = 640; private static final int window_height = 400; private static final int tf01_size = 5; private static final int tf02_size = 1; private static final long serialVersionUID = 1L; TextField tf01 = new TextField("", Sample07.tf01_size); TextField tf02 = new TextField("", Sample07.tf02_size); int pc = -1; // 主処理 public static void main(final String ar[]) { final Frame f = new Sample07(); f.setTitle(Sample07.window_title); f.setSize(Sample07.window_width, Sample07.window_height); f.setVisible(true); } // 部品セット Sample07() { this.setLayout(new FlowLayout()); final Button btnNumberCheck = new Button(Sample07.btnNumericCheck_code); final Button btnNumberRangeCheck = new Button( Sample07.btnNumberRangeCheck_code); btnNumberCheck.addActionListener(this); btnNumberRangeCheck.addActionListener(this); this.add(this.tf01); this.add(btnNumberCheck); this.add(this.tf02); this.add(btnNumberRangeCheck); this.addWindowListener(new WinAdapter()); } // 閉じる class WinAdapter extends WindowAdapter { @Override public void windowClosing(final WindowEvent we) { System.exit(0); } } // イベント public void actionPerformed(final ActionEvent ae) { int i; String str; final String strnum = "0123456789"; final String str1to5 = "12345"; final String ErrorDialog_title = "Error Message"; final String message01 = "数字を入力してください"; final String message02 = "1〜5の数字を入力してください"; if (ae.getActionCommand() == Sample07.btnNumericCheck_code) { str = this.tf01.getText(); if (str.length() == 0) { final ErrDialog dia = new ErrDialog(this, ErrorDialog_title, message01, true); return; } for (i = 0; i < str.length(); i++) { if (strnum.indexOf(str.substring(i, i + 1)) == -1) { final ErrDialog dia = new ErrDialog(this, ErrorDialog_title, message01, true); return; } } } if (ae.getActionCommand() == Sample07.btnNumberRangeCheck_code) { str = this.tf02.getText(); if (str.length() != 1) { final ErrDialog dia = new ErrDialog(this, ErrorDialog_title, message02, true); return; } if (str1to5.indexOf(str) == -1) { final ErrDialog dia = new ErrDialog(this, ErrorDialog_title, message02, true); return; } } } // ダイアログ class ErrDialog extends Dialog implements ActionListener { private static final String Dialog_button_title = "Close"; private static final long serialVersionUID = 1L; ErrDialog(final Frame f, final String title, final String msg, final boolean modal) { super(f, title, modal); this.setLayout(new FlowLayout()); this.setSize(200, 100); final Label lbl = new Label(msg); this.add(lbl); final Button btc = new Button(ErrDialog.Dialog_button_title); this.add(btc); btc.addActionListener(this); this.setVisible(true); } // イベント public void actionPerformed(final ActionEvent e) { this.dispose(); } } }