Creating the User Information Form for the Form Validation Application


Creating the User Information Form for the Form Validation Application

The FormValidation.java file creates the user information form for the Form Validation application. Listing 6-1 shows the contents of the FormValidation.java file:

Listing 6-1: The FormValidation.java File
start example
 /*Import required java.awt package classes.*/ import java.awt.*; /* Import required java.awt.event package classes.*/ import java.awt.event.*; /*Import required javax.swing package classes.*/ import javax.swing.*; /* Import required javax.swing.event package classes. */ import javax.swing.event.*; /*Import required Date class.*/ import java.util.Date; /* Class:FormValidation-User Information form. Constructor:- FormValidation():Creates GUI. Methods: checkvalidation()-Check form validation. */ class FormValidation extends JFrame implements ActionListener, Runnable, ItemListener {    /*Declare object of GridBagLayout class.*/    GridBagLayout gridbaglayout;    /*Declare objects of JLabel class.*/    JLabel titlelabel;    JLabel firstnamelabel;    JLabel lastnamelabel;    JLabel callingnamelabel;    JLabel emaillabel;    JLabel dateofbirthlabel;    JLabel phonelabel;    JLabel mobilelabel;    JLabel faxlabel;    JLabel addressfirstlabel;    JLabel addresssecondlabel;    JLabel citylabel;    JLabel countrylabel;    JLabel pincodelabel;    JLabel pagetitlelabel;    JLabel firstnameasterik;    JLabel lastnameasterik;    JLabel emailasterik;    JLabel dobasterik;    JLabel addressasterik;    JLabel titleasterik;    JLabel asterik;    /*Declare objects of JComboBox class.*/    JComboBox titlecombo;    JComboBox citycombo;    JComboBox countrycombo;    /*Declare objects of JTextField class.*/    JTextField firstnametextfield;    JTextField lastnametextfield;    JTextField callingtextfield;    JTextField emailtextfield;    JTextField dateofbirthtextfield;    JTextField phonetextfield;    JTextField mobiletextfield;    JTextField faxtextfield;    JTextField addressfirsttextfield;    JTextField addresssecondtextfield;    JTextField pincodetextfield;    /*Declare objects of JButton class.*/    JButton savebutton;    JButton closebutton;    /*Declare objects of JPanel class.*/    JPanel buttonpanel;    JPanel titlepanel;    JPanel informationpanel;    /*Declare objects of String class.*/    String selectedVoice=new String("kevin16");    String errormessage;    String[] cityconmobox={"New York", "New Mexico", "Alabama", "Mississippi"};    public FormValidation()    {       /*Sets window's title.*/       super("User Informaion Form");       /*Sets Window's look and feel.*/       try       {          UIManager.setLookAndFeel(UIManager.getSys temLookAndFeelClassName());       }       catch(Exception e)       {          System.out.println("Problem in UI Setting."+e);       }       /*       Declare and initialize object of Container class.       */       Container contentpane=getContentPane();       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);       /*Initialize object of Container class.*/       titlepanel=new JPanel();      /*Initialize object of JLabel class.*/       pagetitlelabel=new JLabel("Enter Your Information", JLabel.CENTER);       /* Sets font type of pagetitlelabel label.*/       pagetitlelabel.setFont(new Font("Verdana",Font.BOLD,12));       /*Adds pagetitlelabel to titlepanel panel.*/       titlepanel.add(pagetitlelabel);       /*Adds titlepanel to Container.*/       contentpane.add(titlepanel,BorderLayout.NORTH);       /*Initialize object of GridBagLayout class.*/       gridbaglayout=new GridBagLayout();       /*Initialize object of JPanel class.*/       informationpanel=new JPanel();       informationpanel.setLayout(gridbaglayout);       /*       Declare and initialize object of GridBagConstraints class.       */       GridBagConstraints gridbagconstraints=new GridBagConstraints();       /*Initialize object of JLabel class.*/       titlelabel=new JLabel("Title");       /*Sets constraints for gridbagconstraints.*/       gridbagconstraints.fill=GridBagConstraints.BOTH;       gridbagconstraints.insets=new Insets(5, 5, 0, 0);       gridbagconstraints.gridx=0;       gridbagconstraints.gridy=0;       gridbagconstraints.anchor=GridBagConstrai nts.NORTH;       gridbaglayout.setConstraints(titlelabel,gridbagconstraints);       titlelabel.setPreferredSize(new Dimension(80,28));       /*        Adds titlelabel label to informationpanel panel*/       informationpanel.add(titlelabel);       /*Initialize object of JComboBox class.*/       titlecombo=new JComboBox(new MyTitleComboBoxModel());       titlecombo.setSelectedIndex(0);       /*Sets constraints for gridbagconstraints.*/ gridbagconstraints.fill=GridBagConstraints.       BOTH;       gridbagconstraints.insets=new Insets(5, 5, 0, 0);       gridbagconstraints.gridx=1;       gridbagconstraints.gridy=0; gridbaglayout.setConstraints(titlecombo, gridbagconstraints);       titlecombo.setPreferredSize(newDimension(250, 28));       /*       Adds titlecombo combo to informationpanel panel       */       informationpanel.add(titlecombo);       /*Initialize object of JLabel class.*/       firstnamelabel=new JLabel("First Name");       /*Sets constraints for gridbagconstraints.*/       gridbagconstraints.fill=GridBagConstraints.BOTH;       gridbagconstraints.insets=new Insets(5, 5, 0, 0);       gridbagconstraints.gridx=0;       gridbagconstraints.gridy=1; gridbaglayout.setConstraints(firstnamelabel, gridbagconstraints);       firstnamelabel.setPreferredSize(newDimension(80, 28));       /*        Adds firstnamelabel label to informationpanel panel.       */       informationpanel.add(firstnamelabel);       /*Initialize object of JTextField class.*/       firstnametextfield=new JTextField();       /*Sets constraints for gridbagconstraints.*/       gridbagconstraints.fill=GridBagConstraints.BOTH;       gridbagconstraints.insets=new Insets(5, 5, 0, 0);       gridbagconstraints.gridx=1;       gridbagconstraints.gridy=1;       gridbaglayout.setConstraints(firstnametextfield,gridbagconstraints);       firstnametextfield.setPreferredSize(newDimension(250,28));       /*        Adds firstnametextfield textfield to informationpanel panel.       */       informationpanel.add(firstnametextfield);       /* Initialize object of JLabel class.*/       firstnameasterik=new JLabel(" * ");       /*Sets constraints for gridbagconstraints.*/       gridbagconstraints.fill=GridBagConstraints.BOTH;       gridbagconstraints.insets=new Insets(0, 0, 0, 0);       gridbagconstraints.gridx=2;       gridbagconstraints.gridy=1; gridbaglayout.setConstraints(firstnameasterik,       gridbagconstraints);       firstnameasterik.setForeground(Color.red);       /*       Adds firstnameasterik label to informationpanel panel.       */       informationpanel.add(firstnameasterik);       /*Initialize object of JLabel class.*/       lastnamelabel=new JLabel("Last Name");       /*Sets constraints for gridbagconstraints.*/       gridbagconstraints.fill=GridBagConstraints.BOTH;       gridbagconstraints.insets=new Insets(5, 5, 0, 0);       gridbagconstraints.gridx=0;       gridbagconstraints.gridy=2;       gridbaglayout.setConstraints(lastnamelabel,gridbagconstraints);       lastnamelabel.setPreferredSize(newDimension(80,28));       /*       Adds lastnamelabel label to informationpanel panel.       */       informationpanel.add(lastnamelabel);       /*Initialize object of JTextField class.*/       lastnamelabel=new JTextField();       /*        Sets constraints for gridbagconstraints.       */gridbagconstraints.fill=GridBagConstraints.BOTH;       gridbagconstraints.insets=new Insets(5, 5, 0, 0);       gridbagconstraints.gridx=1;       gridbagconstraints.gridy=2;       gridbaglayout.setConstraints(lastnametextfield, gridbagconstraints);       lastnametextfield.setPreferredSize(newDimension(250, 28));       /*       Adds lastnametextfield TextField to  informationpanel panel.       */       informationpanel.add(lastnametextfield);       /*Initialize object of JLabel class.*/       lastnameasterik=new JLabel(" * ", JLabel.LEFT);       /*Sets constraints for gridbagconstraints.*/        gridbagconstraints.fill=GridBagConstraints.BOTH;       gridbagconstraints.insets=new Insets(0, 0, 0, 0);       gridbagconstraints.gridx=2;       gridbagconstraints.gridy=2; gridbaglayout.setConstraints(lastnameasterik, gridbagconstraints);       lastnameasterik.setForeground(Color.red);       /*       Adds lastnameasterik label to informationpanel panel.       */       informationpanel.add(lastnameasterik);       /*Initialize object of JLabel class.*/       callingnamelabel=new JLabel("Calling Name");       /*Sets constraints for gridbagconstraints.*/       gridbagconstraints.fill=GridBagConstraints.BOTH;       gridbagconstraints.insets=new Insets(5, 5, 0, 0);       gridbagconstraints.gridx=0;       gridbagconstraints.gridy=3; gridbaglayout.setConstraints(callingnamelabel,       gridbagconstraints);       callingnamelabel.setPreferredSize(new Dimension(80, 28));       /*       Adds callingnamelabel label to informationpanel panel.       */       informationpanel.add(callingnamelabel);       /*Initialize object of JTextField class.*/       callingtextfield=new JTextField();       /*Sets constraints for gridbagconstraints.*/       gridbagconstraints.fill=GridBagConstraints.BOTH;       gridbagconstraints.insets=new Insets(5, 5, 0, 0);       gridbagconstraints.gridx=1;       gridbagconstraints.gridy=3; gridbaglayout.setConstraints(callingtextfield,       gridbagconstraints);       callingtextfield.setPreferredSize(newDimension(250, 28));       /*       Adds callingtextfield textfield to informationpanel panel.       */       informationpanel.add(callingtextfield);       /*Initialize object of JLabel class.*/       emaillabel=new JLabel("Email ID");       /*Sets constraints for gridbagconstraints.*/       gridbagconstraints.fill=GridBagConstraints.BOTH;       gridbagconstraints.insets=new Insets(5, 5, 0, 0);       gridbagconstraints.gridx=0;       gridbagconstraints.gridy=4;       gridbaglayout.setConstraints(emaillabel,gridbagconstraints);       emaillabel.setPreferredSize(new Dimension(80, 28));       /*       Adds emaillabel label to informationpanel panel.       */       informationpanel.add(emaillabel);       /*Initialize object of JTextField class.*/       emailtextfield=new JTextField();       /*Sets constraints for gridbagconstraints.*/       gridbagconstraints.fill=GridBagConstraints.BOTH;       gridbagconstraints.insets=new Insets(5, 5, 0, 0);       gridbagconstraints.gridx=1;       gridbagconstraints.gridy=4;       gridbaglayout.setConstraints(emailtextfield,gridbagconstraints);       emailtextfield.setPreferredSize(new Dimension(250, 28));       /*       Adds emailtextfield textfield to informationpanel panel.       */       informationpanel.add(emailtextfield);       /*Initialize object of JLabel class.*/       emailasterik=new JLabel(" * ", JLabel.LEFT);       /*Sets constraints for gridbagconstraints.*/       gridbagconstraints.fill=GridBagConstraints.BOTH;       gridbagconstraints.insets=new Insets(0, 0, 0, 0);       gridbagconstraints.gridx=2;       gridbagconstraints.gridy=4; gridbaglayout.setConstraints(emailasterik, gridbagconstraints);       emailasterik.setForeground(Color.red);       /*       Adds emailasterik label to informationpanel panel.       */       informationpanel.add(emailasterik);       /*Initialize object of JLabel class.*/       dateofbirthlabel=new JLabel("Date Of Birth(dd/mm/yyyy)",JLabel.LEFT);       /*Sets constraints for gridbagconstraints.*/       gridbagconstraints.fill=GridBagConstraints.BOTH;       gridbagconstraints.insets=new Insets(5, 5, 0, 0); gridbagconstraints.gridx=0;       gridbagconstraints.gridy=5;       gridbaglayout.setConstraints(dateofbirthlabel, gridbagconstraints);       dateofbirthlabel.setPreferredSize(new Dimension(280, 28));       /*       Adds dateofbirthlabel label to informationpanel panel.       */       informationpanel.add(dateofbirthlabel);       /*Initialize object of JTextField class.*/       dateofbirthtextfield=new JTextField();       /*Sets constraints for gridbagconstraints.*/       gridbagconstraints.fill=GridBagConstraints.BOTH;       gridbagconstraints.insets=new Insets(5, 5, 0, 0);       gridbagconstraints.gridx=1;       gridbagconstraints.gridy=5;       gridbaglayout.setConstraints(dateofbirthtextfield, gridbagconstraints);       dateofbirthtextfield.setPreferredSize(newDimension(250, 28));       /*        Adds dateofbirthtextfield textfield to informationpanel panel.       */       informationpanel.add(dateofbirthtextfield);       /*Initialize object of JLabel class.*/       dobasterik=new JLabel(" * ", JLabel.LEFT);       /*Sets constraints for gridbagconstraints.*/       gridbagconstraints.fill=GridBagConstraints.BOTH;       gridbagconstraints.insets=new Insets(0, 0, 0, 0);       gridbagconstraints.gridx=2;       gridbagconstraints.gridy=5;       gridbaglayout.setConstraints(dobasterik,gridbagconstraints);       dobasterik.setForeground(Color.red);       /*       Adds dobasterik label to informationpanel panel.       */       informationpanel.add(dobasterik);       /*Initialize object of JLabel class.*/       phonelabel=new JLabel("Phone Number");       /*Sets constraints for gridbagconstraints.*/       gridbagconstraints.fill=GridBagConstraints. BOTH;       gridbagconstraints.insets=new Insets(5, 5, 0, 0);       gridbagconstraints.gridx=0;       gridbagconstraints.gridy=6;       gridbaglayout.setConstraints(phonelabel,gridbagconstraints);       phonelabel.setPreferredSize(newDimension(80, 28));       /*       Adds phonelabel label to informationpanel panel.       */       informationpanel.add(phonelabel);       /*Initialize object of JTextField class.*/       phonetextfield=new JTextField();       /*Sets constraints for gridbagconstraints.*/       gridbagconstraints.fill=GridBagConstraints.BOTH;       gridbagconstraints.insets=new Insets(5, 5, 0, 0);       gridbagconstraints.gridx=1;       gridbagconstraints.gridy=6;       gridbaglayout.setConstraints(phonetextfield,gridbagconstraints);       phonetextfield.setPreferredSize(newDimension(250, 28));       /*       Adds phonetextfield textfield to informationpanel panel.       */       informationpanel.add(phonetextfield);       /*Initialize object of JLabel class.*/       mobilelabel=new JLabel("Mobile Number");       /*Sets constraints for gridbagconstraints.*/       gridbagconstraints.fill=GridBagConstraints.BOTH;       gridbagconstraints.insets=new Insets(5, 5, 0, 0);       gridbagconstraints.gridx=0;       gridbagconstraints.gridy=7;       gridbaglayout.setConstraints(mobilelabel,gridbagconstraints);       mobilelabel.setPreferredSize(newDimension(80, 28));       /*       Adds mobilelabel label to informationpanel panel.       */       informationpanel.add(mobilelabel);       /*Initialize object of JTextField class.*/       mobiletextfield=new JTextField();       /*Sets constraints for gridbagconstraints.*/       gridbagconstraints.fill=GridBagConstraints.BOTH;       gridbagconstraints.insets=new Insets(5, 5, 0, 0);       gridbagconstraints.gridx=1;       gridbagconstraints.gridy=7;       gridbaglayout.setConstraints(mobiletextfield, gridbagconstraints);         mobiletextfield.setPreferredSize(newDimension(250, 28));       /*        Adds mobiletextfield textfield to informationpanel panel.       */       informationpanel.add(mobiletextfield);       /*Initialize object of JLabel class.*/       faxlabel=new JLabel("Fax Number");       /*Sets constraints for gridbagconstraints.*/       gridbagconstraints.fill=GridBagConstraints.BOTH;       gridbagconstraints.insets=new Insets(5, 5, 0, 0);       gridbagconstraints.gridx=0;       gridbagconstraints.gridy=8;       gridbaglayout.setConstraints(faxlabel, gridbagconstraints);       faxlabel.setPreferredSize(new Dimension(80, 28));       /*       Adds faxlabel label to informationpanel panel.       */       informationpanel.add(faxlabel);       /*Initialize object of JTextField class.*/       faxtextfield=new JTextField();       /*        Sets constraints for gridbagconstraints.       */       gridbagconstraints.fill=GridBagConstraints.BOTH;       gridbagconstraints.insets=new Insets(5, 5, 0, 0);       gridbagconstraints.gridx=1;       gridbagconstraints.gridy=8; gridbaglayout.setConstraints(faxtextfield, gridbagconstraints);       faxtextfield.setPreferredSize(newDimension(250, 28));       /*       Adds faxtextfield textfield to informationpanel panel.       */       informationpanel.add(faxtextfield);       /*Initialize object of JLabel class.*/       addressfirstlabel=new JLabel("Address ");       /*       Sets constraints for gridbagconstraints.       */       gridbagconstraints.fill=GridBagConstraints.BOTH;       gridbagconstraints.insets=new Insets(5, 5, 0, 0);       gridbagconstraints.gridx=0;       gridbagconstraints.gridy=9;       gridbaglayout.setConstraints(addressfirstlabel, gridbagconstraints);       addressfirstlabel.setPreferredSize(newDimension(80, 28));       /*       Adds addressfirstlabel label to informationpanel panel.       */       informationpanel.add(addressfirstlabel);       /*Initialize object of JTextField class.*/       addressfirsttextfield=new JTextField();       /*       Sets constraints for gridbagconstraints.       */ gridbagconstraints.fill=GridBagConstraints.BOTH;       gridbagconstraints.insets=new Insets(5, 5, 0, 0);       gridbagconstraints.gridx=1;       gridbagconstraints.gridy=9;       gridbaglayout.setConstraints(addressfirsttextfield,gridbagconstraints);       addressfirsttextfield.setPreferredSize(newDimension(250, 28));       /*       Adds addressfirsttextfield textfield to informationpanel panel.       */       informationpanel.add(addressfirsttextfield);       /*Initialize object of JLabel class.*/       addressasterik=new JLabel(" *", JLabel.LEFT);       /*       Sets constraints for gridbagconstraints.       */       gridbagconstraints.fill=GridBagConstraints.BOTH;       gridbagconstraints.insets=new Insets(0, 0, 0, 0);       gridbagconstraints.gridx=2;       gridbagconstraints.gridy=9;       gridbaglayout.setConstraints(addressasterik, gridbagconstraints);       addressasterik.setForeground(Color.red);       /*       Adds dobasterik label to informationpanel panel.       */       informationpanel.add(addressasterik);       /*Initialize object of JLabel class.*/       addresssecondlabel=new JLabel("Address 2");       /*       Sets constraints for gridbagconstraints.       */ gridbagconstraints.fill=GridBagConstraints.BOTH;       gridbagconstraints.insets=new Insets(5, 5, 0, 0);       gridbagconstraints.gridx=0;       gridbagconstraints.gridy=10;       gridbaglayout.setConstraints(addresssecondlabel, gridbagconstraints);       addresssecondlabel.setPreferredSize(new Dimension(80, 28));       /*       Adds addresssecondlabel label to informationpanel panel.       */       informationpanel.add(addresssecondlabel);       /*Initialize object of JTextField class.*/       addresssecondtextfield=new JTextField();       gridbagconstraints.fill=GridBagConstraints.BOTH;       gridbagconstraints.insets=new Insets(5, 5, 0, 0);       gridbagconstraints.gridx=1;       gridbagconstraints.gridy=10;       gridbaglayout.setConstraints(addresssecondtextfield,gridbagconstraints);       addresssecondtextfield.setPreferredSize(new Dimension(250, 28));       /*       Adds addresssecondtextfield textfield to informationpanel panel.       */  informationpanel.add(addresssecondtextfield);       /*Initialize object of JLabel class.*/       citylabel=new JLabel("City");       /*        Sets constraints for gridbagconstraints.       */       gridbagconstraints.gridx=0;       gridbagconstraints.gridy=11;       gridbagconstraints.anchor=GridBagConstraints.NORTH;       gridbaglayout.setConstraints(citylabel,gridbagconstraints);       citylabel.setPreferredSize(new Dimension(80, 28));       /*       Adds citylabel label to informationpanel panel.       */       informationpanel.add(citylabel);       /*Initialize object of JComboBox class.*/       citycombo=new JComboBox(new MyCityComboBoxModel());       citycombo.setSelectedIndex(0);       /*       Sets constraints for gridbagconstraints.       */ gridbagconstraints.fill=GridBagConstraints.BOTH;       gridbagconstraints.insets=new Insets(5,5,0,0);       gridbagconstraints.gridx=1; gridbagconstraints.gridy=11;       gridbaglayout.setConstraints(citycombo,gridbagconstraints);        citycombo.setPreferredSize(new Dimension(250,28));       /*       Adds citycombo combo to informationpanel panel.       */       informationpanel.add(citycombo);       /* Initialize object of JLabel class. */       countrylabel=new JLabel("Country");       /*       Sets constraints for gridbagconstraints.       */       gridbagconstraints.gridx=0;       gridbagconstraints.gridy=12; gridbagconstraints.anchor=GridBagConstraints.NORTH;       gridbaglayout.setConstraints(countrylabel,gridbagconstraints);       countrylabel.setPreferredSize(new  Dimension(80,28));       /*       Adds countrylabel label to informationpanel panel.       */       informationpanel.add(countrylabel);       /* Initialize object of JComboBox class. */       countrycombo=new JComboBox(new MyCountryComboBoxModel());       countrycombo.addItemListener(this);       countrycombo.setSelectedIndex(0);       /*       Sets constraints for gridbagconstraints.       */ gridbagconstraints.fill=GridBagConstraints.BOTH;       gridbagconstraints.insets=new Insets(5,5,0,0); gridbagconstraints.gridx=1;       gridbagconstraints.gridy=12; gridbaglayout.setConstraints(countrycombo, gridbagconstraints);       countrycombo.setPreferredSize(new Dimension(250,28));       /*       Adds countrycombo combo to informationpanel panel.       */       informationpanel.add(countrycombo);       /* Initialize object of JLabel class. */       pincodelabel=new JLabel("PinCode");       /*       Sets constraints for gridbagconstraints.       */ gridbagconstraints.fill=GridBagConstraints.BOTH;       gridbagconstraints.insets=new Insets(5,5,0,0);       gridbagconstraints.gridx=0;       gridbagconstraints.gridy=13; gridbaglayout.setConstraints(pincodelabel, gridbagconstraints);       pincodelabel.setPreferredSize(new Dimension(80,28));       /*       Adds pincodelabel label to informationpanel panel.       */       informationpanel.add(pincodelabel);       /* Initialize object of JTextField class. */       pincodetextfield=new JTextField();       /*       Sets constraints for gridbagconstraints.       */       gridbagconstraints.fill=GridBagConstraints.BOTH;       gridbagconstraints.insets=new Insets(5,5,0,0);       gridbagconstraints.gridx=1;       gridbagconstraints.gridy=13;       gridbaglayout.setConstraints(pincodetextfield, gridbagconstraints);       pincodetextfield.setPreferredSize(new Dimension(250,28));       /*       Adds pincodetextfield textfield to informationpanel panel.       */       informationpanel.add(pincodetextfield);       /* Initialize object of JLabel class. */       asterik=new JLabel("* indicates required field.");       /*        Sets constraints for gridbagconstraints.       */ gridbagconstraints.fill=GridBagConstraints.BOTH;       gridbagconstraints.insets=new Insets(5, 5, 0, 0);       gridbagconstraints.gridwidth=3;       gridbagconstraints.gridx=0;       gridbagconstraints.gridy=14;       asterik.setForeground(Color.red); gridbaglayout.setConstraints(asterik, gridbagconstraints);       informationpanel.add(asterik); contentpane.add(informationpanel, BorderLayout.CENTER);       /*Initialize objects of JButton class.*/       new JButton("Save");       closebutton=new JButton("Close");       /*Adds action listener for buttons.*/       savebutton.addActionListener(this);       closebutton.addActionListener(this);       /*Sets action command to buttons.*/       savebutton.setActionCommand("save");       closebutton.setActionCommand("close");       /*Sets mnemonic to buttons.*/       savebutton.setMnemonic('s');       closebutton.setMnemonic('c');       /*Sets button size.*/       savebutton.setPreferredSize(new Dimension(100, 23));       closebutton.setPreferredSize(newDimension(100, 23));       /*Initialize objects of JPanel class.*/       buttonpanel=new JPanel();       /*Adds button to panel.*/       buttonpanel.add(savebutton);       buttonpanel.add(closebutton);       /*Add panel to container.*/       contentpane.add(buttonpanel, BorderLayout.SOUTH);    }    public void itemStateChanged(ItemEvent e)    {       if (e.getSource()==countrycombo)       {          if (e.getStateChange() == ItemEvent.SELECTED)          {             String             countryname=(String)countrycombo.getSelectedItem();             if(countryname=="United States of America")             {                cityconmobox[0]="New York";                cityconmobox[1]="New Mexico";                cityconmobox[2]="Alabama";                cityconmobox[3]="Mississippi";                citycombo.setModel(new MyCityComboBoxModel());                citycombo.setSelectedIndex(0);             }             else if(countryname=="Scotland")             {                cityconmobox[0]="Aberdeenshire";                cityconmobox[1]="Fife";                cityconmobox[2]="Rosee &Cromarty";                cityconmobox[3]="Shirlinqshire";                citycombo.setModel(new MyCityComboBoxModel());                citycombo.setSelectedIndex(0);             }          }       }    }    /*    Class:MyTitleComboBoxModel-Binds Items to combobox.    Methods:    getElementAt():returns element from a combobox.    getSize():returns number of itemes in combobox.    setSelectedItem():set selected item in combobox.    getSelectedItem():returns element from a combobox.    */    class MyTitleComboBoxModel extends AbstractListModel implements ComboBoxModel    {       String[] titleconmobox={"Mr.","Mrs.","Miss."};       String selection=null;       public Object getElementAt(int index)       {          return titleconmobox[index];       }       public int getSize()       {          return titleconmobox.length;       }       public void setSelectedItem(Object selecteditem)       {          selection=(String )selecteditem;       }       public Object getSelectedItem()       {          return selection;       }    };    /*    Class:MyCityComboBoxModel-Binds Items to combobox.    Methods:    getElementAt():returns element from a combobox.    getSize():returns number of itemes in combobox.    setSelectedItem():set selected item in combobox.    getSelectedItem():returns element from a combobox.    */     class MyCityComboBoxModel extends AbstractListModel implements ComboBoxModel    {       String selection=null;       public Object getElementAt(int index)       {          return cityconmobox[index];       }       public int getSize()       {          return cityconmobox.length;       }       public void setSelectedItem(Object selecteditem)       {          selection=(String )selecteditem;       }       public Object getSelectedItem()       {          return selection;       }    };    /*    Class:MyCountryComboBoxModel-Binds Items to combobox.    Methods:    getElementAt():returns element from a combobox.    getSize():returns number of itemes in combobox.    setSelectedItem():set selected item in combobox.    getSelectedItem():returns element from a combobox.    */    class MyCountryComboBoxModel extends AbstractListModel implements ComboBoxModel    {       String[] countryconmobox={"United States of America", "United Kingdom", "Scotland"};       String selection=null;       public Object getElementAt(int index)       {          return countryconmobox[index];       }       public int getSize()       {          return countryconmobox.length;       }       public void setSelectedItem(Object selecteditem)       {          selection=(String )selecteditem;       }       public Object getSelectedItem()       {          return selection;       }    };    /*    actionPerformed - This method is called when the user clicks the save or Close button.    Parameters: ae - an ActionEvent object containing details of the event.    Return Value: NA    */    public void actionPerformed(ActionEvent ae)    {       String actioncommand=ae.getActionCommand();       /*       This is executed when user clicks the save button.       */       if(actioncommand.equals("save"))          {             errormessage=checkvalidation();             if(errormessage.equals(""))             {                errormessage="All entries in this form are valid.";               }             else             {                Thread t=new Thread(this);                t.start();             }       }       /*       This is executed when user clicks the close button.       */       else if (actioncommand.equals("close"))       {          System.exit(0);       }    }    /*    checkvalidation-This function is used to check form validation.    Parameters:NA    Return Value:String    */    public String checkvalidation()    {       /*Declare object of String class.*/       String message="";       String fname=firstnametextfield.getText().trim();       String lname=lastnametextfield.getText().trim();       String cname=callingtextfield.getText().trim();       String email=emailtextfield.getText().trim();       String address1=addressfirsttextfield.getText().trim();       String dateofbirth=dateofbirthtextfield.getText().trim();       String phoneno=phonetextfield.getText().trim();       String mobileno=mobiletextfield.getText().trim();       String faxno=faxtextfield.getText().trim();       /*Declare object of Validation class.*/       Validation validation=new Validation();       if(fname.equals(""))       {          message=message+"First name is a required field.\n";       }       message=message+validation.checkfornumber(fname,"first name");       if(lname.equals(""))       {          message=message+"Last name is a required field.\n";       }       message=message+validation.checkfornumber(lname,"last name");       if (email.equals(""))       {          message=message+"Email ID is a required field.\n";       }       else       {          message=message+validation.emailvalidation(email);       }       if(dateofbirth.equals(""))       {          Message=message+"Date Of Birth is a required field.\n";       }       else       {          message=message+validation.ValidDate(dateofbirth,"Date Of Birth");       }       if(address1.equals(""))       {          message=message+"Address 1 is a required field.\n";       }       message=message+validation.checkfornumber (cname,"Calling Number");       message=message+validation.isValidNumber(phoneno,"Phone Number");       message=message+validation.isValidNumber(mobileno,"Mobile Number");       message=message+validation.isValidNumber(faxno,"Fax Number");       return message;    }    public static void main(String[] args)    {       /*       Declares and initializes object of FormValidation class.       */       FormValidation formvalidation=new FormValidation();       /*Sets window size.*/       formvalidation.setSize(450,500);       /*Set window visibility true.*/       formvalidation.setVisible(true);    }    public void run()    {       SpeakFormValidation st;       st=new SpeakFormValidation(errormessage, selectedVoice);       /*       Invoke the speakSelText() method of SpeakText class.       */       System.out.println("errormessage");       st.speakSelText(this);    } } /* Class:Validation-use to perform validation. Methods: isValidNumber()-This function is used to check that supplied value is a valid number or not. ValidDate()-This function is used to check that supplied value is a valid date or not. emailvalidation()-This function is used to check that supplied value is a email ID or not. checkfornumber()-This function is used to check that supplied value contains a numeric value  or not. */ class Validation {    /*Declare object of String class.*/    String message="";    /*    isValidNumber-This function is used to check that supplied value is a valid number or not.    Parameters:number-object of String class,field - object of String class.    Return Value:String    */    public String isValidNumber(String number, String field)    {       String message="";       for (int i=0;i<number.length();i++ )       {          if ("1234567890".indexOf(number.charAt(i))==-1)          {             message=message+"Please enter a valid value for "+field+".\n";             return message;          }       }       return "";    }    /*    ValidDate-This function is used to date validation.    Parameters:datestring - object of String class, field-object of String class    Return Value:String    */    public String ValidDate(String datestring,String field)    {       String[] datepart=datestring.split("/");       if (datepart.length!=3)       {          message=message+"Please enter a valid value for "+field+".\n";          return message;       }       if (Integer.parseInt(datepart[2])<1900)       {          message=message+"Please enter a valid value for "+field+".\n";          return message;       } if(Integer.parseInt(datepart[1])<1&&Integer.parseInt(datepart[1])>12)       {          message=message+"Please enter a valid value for "+field+".\n";          return message;       } if(Integer.parseInt(datepart[0])<1&&Integer.parseInt(datepart[1])>31)       {          message=message+"Please enter a valid value for "+field+".\n";          return message;       }       try       {          Date date=new Date(Integer.parseInt(datepart[2]),Integer.parseInt(datepart[1]),          Integer.parseInt(datepart[0]));          System.out.println(date);       }       catch(Exception e)       {          message=message+"Please enter a valid value for "+field+".\n";          return message;       }       return "";    }    /*    emailvalidation-This function is used to check email validity.    Parameters:emailid - object of String class.    Return Value:String    */    public String emailvalidation(String emailid)    {       int dot_pos;       int pos=0;       int emaillength;       int count;       String condition="yes";       int at_count=0;       int dot_count=0;       int temp=0;       int at_pos;       String domain;       String error;       if(emailid=="")       {          message=message+"Email ID is a required field.";       }       else       {          at_pos=emailid.indexOf("@");          dot_pos=emailid.indexOf(".");          if(at_pos<1  dot_pos<1)          {             message=message+"Please check position of '@' and '.' in email address.";          }          else          {             for(int i=0;i<emailid.length();i++)             {                if(((int)emailid.charAt(i)>0 &&                (int)emailid.charAt(i)<48)((int)emailid.charAt(i)>57 &&                (int)emailid.charAt(i)<65)((int)emailid.charAt(i)>91 &&                (int)emailid.charAt(i)<97)(int)emailid.charAt(i)>122)                {                   if(emailid.charAt(i)=='@'emailid.charAt(i)=='.')                   {                      if(emailid.charAt(i)=='@')                      {                         at_count++;                      }                      else                      {                         dot_count++;                      }                       if(dot_count>=1)                      {                         dot_pos=i;                         if((dot_pos>at_pos) &&temp==0)                         {                            pos=dot_pos-at_pos;                            temp++;                         }                                              }                   }                   else                   {                      condition="no";                      i=emailid.length();                   }                }             }             if(condition=="no")             {                message=message+"Your email contains a blank space or special character.";             }             else             {                if(at_count>1)                {                   message=message+"E-mail contains                   extra @ ";                }             else             {                if(pos<2)                {                   message=message+"Missing domain name between '@' and '.'";                   emaillength=emailid.length();                }                else                {                                    count=dot_pos+1;                   domain=""; for(;count<emailid.length();count++)                   { domain=domain+emailid.charAt(count);                }                String[] dom={"au", "com", "net", "org",                "edu", "in", "mil", "gov", "arpa", "biz", "aero", "name",                "coop", "info", "pro", "museum"};                error="yes";                for(int k=0;k<dom.length;k++)                {                   if(domain.equals.dom[k])                   {                      k=dom.length;                      error="no";                   }                }                if((error=="yes" && (domain.length()>2))  (domain.length()<2))                {                   message=message+"Domain name must end with well known domains\n or                   2-lettered country name. eg com, edu, in etc.";                }                                       }          }       }    } } return message; } /* checkfornumber-This function is used to check that supplied value contains a numeric value or not. Parameters:value-object of String class, fieldname-object of String class. Return Value:String */ public String checkfornumber(String value, String fieldname) {    String message="";    for(int i=0;i<value.length();i++)    {       if ("1234567890".indexOf(value.charAt(i))!=-1)       {          message="Please enter a valid value for"+fieldname+".\n";          return message;       }    }    return ""; } }; 
end example
 

Download this listing .

In the above code, the main() method creates an instance of the FormValidation.java class.

The methods defined in Listing 6-1 are:

  • checkvalidation (): Checks the validity of the information specified by an end user.

  • actionPerformed (): Acts as an event listener and activates an appropriate method based on the menu option an end user selects. This method is invoked when an end user clicks a button in the Form Validation application.

  • isValidNumber (): Checks whether or not the value specified by an end user is a valid number.

  • ValidDate (): Checks whether or not the value specified by an end user is a valid date.

  • emailvalidation (): Checks whether or not the value specified by an end user is a valid e-mail ID.

  • checkfornumber (): Checks whether or not the value specified by an end user contains a numeric value.

The FormValidation class generates the main window of the Form Validation application, as shown in Figure 6-2:

click to expand: this figure shows the user information form for the form validation application.
Figure 6-2: User Interface of the Form Validation Application

The FormValidation.java file allows an end user to fill the fields of the user information form, as shown in Figure 6-3:

click to expand: this figure shows the user inputs filled by an end user in the user information form.
Figure 6-3: Specifying User Information

After an end user enters the values in the required fields and clicks the Save button, the Form Validation application checks for errors in the user information form. If an end user enters some invalid information, the application reads out the validation errors.

Click the Close button to close the application.




Java InstantCode. Developing Applications using Java Speech API
Java InstantCode. Developing Applications using Java Speech API
ISBN: N/A
EAN: N/A
Year: 2004
Pages: 46

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net