//Example17 import java.awt.BorderLayout; import java.awt.Frame; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; public class Example17 { private static final String btnNumericCheck_code = "Integer Check"; private static final String btnNumberRangeCheck_title = "1 - 5"; private static final String btnNumberRangeCheck_code = "1 - 5 Check"; private static final String window_title = "Check Number and Message Dialog"; private static final int locateX = 10; private static final int locateY = 10; 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 = 2; JTextField tf01 = new JTextField("", Example17.tf01_size); JTextField tf02 = new JTextField("", Example17.tf02_size); // main public static void main(final String ar[]) { final Example17 sample = new Example17(); } // constructor public Example17() { // make frame final JFrame f = new JFrame(Example17.window_title); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // add Buttons final JButton btnNumberCheck = new JButton( Example17.btnNumericCheck_code); btnNumberCheck.setActionCommand(Example17.btnNumericCheck_code); btnNumberCheck.addActionListener(new PushButtonActionListener(f)); final JButton btnNumberRangeCheck = new JButton( Example17.btnNumberRangeCheck_title); btnNumberRangeCheck .setActionCommand(Example17.btnNumberRangeCheck_code); btnNumberRangeCheck.addActionListener(new PushButtonActionListener(f)); // layout Buttons and TextFields final JPanel p1 = new JPanel(); p1.add(btnNumberCheck); p1.add(btnNumberRangeCheck); f.getContentPane().add(p1, BorderLayout.NORTH); final JPanel p2 = new JPanel(); p2.add(this.tf01); p2.add(this.tf02); f.getContentPane().add(p2, BorderLayout.CENTER); // show frame f.setLocation(Example17.locateX, Example17.locateY); f.setSize(Example17.window_width, Example17.window_height); f.setVisible(true); } // actonListener at pushbutton private class PushButtonActionListener implements ActionListener { private static final String message01 = "Please input number!"; private static final String message02 = "Please input 1 - 5!"; private static final String ErrorDialog_title = "Error Message"; JFrame f = null; public PushButtonActionListener(final JFrame af) { this.f = af; } public void actionPerformed(final ActionEvent ae) { final String strnum = "0123456789"; final String str1to5 = "12345"; if (ae.getActionCommand() == Example17.btnNumericCheck_code) { final String str = Example17.this.tf01.getText(); if (str.length() == 0) { final ErrDialog dia = new ErrDialog(this.f, PushButtonActionListener.ErrorDialog_title, PushButtonActionListener.message01); return; } for (int i = 0; i < str.length(); i++) { if (strnum.indexOf(str.substring(i, i + 1)) == -1) { final ErrDialog dia = new ErrDialog(this.f, PushButtonActionListener.ErrorDialog_title, PushButtonActionListener.message01); return; } } } if (ae.getActionCommand() == Example17.btnNumberRangeCheck_code) { final String str = Example17.this.tf02.getText(); if (str.length() != 1) { final ErrDialog dia = new ErrDialog(this.f, PushButtonActionListener.ErrorDialog_title, PushButtonActionListener.message02); return; } if (str1to5.indexOf(str) == -1) { final ErrDialog dia = new ErrDialog(this.f, PushButtonActionListener.ErrorDialog_title, PushButtonActionListener.message02); return; } } } } // dialog class ErrDialog extends JDialog { private static final int dialog_locateX = 10; private static final int dialog_locateY = 10; private static final int dialog_width = 200; private static final int dialog_height = 100; private static final long serialVersionUID = 1L; ErrDialog(final Frame f, final String title, final String msg) { // make modal dialog final JDialog dia = new JDialog(f, title, true); // add label final JLabel lab = new JLabel(msg); dia.getContentPane().add(BorderLayout.NORTH, lab); // show modal dialog dia.setLocation(ErrDialog.dialog_locateX, ErrDialog.dialog_locateY); dia.setSize(ErrDialog.dialog_width, ErrDialog.dialog_height); dia.setVisible(true); } } }