首页 > 代码库 > 2016.9.20小程序--1

2016.9.20小程序--1

在员工管理的GUI练习中加入数据验证。也就是在添加对象进数组之前,先作数据合法性的验证,数据合法再作添加。

姓名:2个以上的字母或汉字

性别:必须是男或女

年龄:必须为数字

电话:131518开始的11位数字 或者  028-99823345

技术分享

 

 

1、员工类

 1 public class Staff { 2     private String name ; 3     private int age ; 4     private String sex ; 5     private String tel ; 6      7  8      9     public String getName() {10         return name;11     }12     public void setName(String name) {13         this.name = name;14     }15     public int getAge() {16         return age;17     }18     public void setAge(int age) {19         this.age = age;20     }21     public String getSex() {22         return sex;23     }24     public void setSex(String sex) {25         this.sex = sex;26     }27     public String getTel() {28         return tel;29     }30     public void setTel(String tel) {31         this.tel = tel;32     }33     34 }

 2、窗体

  1 import java.awt.event.ActionEvent;  2 import java.awt.event.ActionListener;  3   4 import javax.swing.JFrame;  5 import javax.swing.JOptionPane;  6   7 import JLabelAndJButton.MyButton;  8 import JLabelAndJButton.MyTxt;  9  10 public class MainJFrame extends JFrame{ 11     private  MyTxt workName = new MyTxt("姓名", 60, 40, this); 12     private MyTxt workAge = new MyTxt("年龄", 60, 100, this); 13     private MyTxt workSex = new MyTxt("性别", 60, 160, this); 14     private MyTxt workTel = new MyTxt("电话", 60, 220, this); 15      16     private MyButton addButton = new MyButton("添加", 40, 280, this); 17      18     static int num = 0; 19     public static Staff [] workers = new Staff[2]; 20      21     public MainJFrame(){ 22         this.setTitle("我的窗体"); 23         this.setLayout(null); 24          MyButton showButton = new MyButton("显示", 140, 280, this); 25          MyButton findButton = new MyButton("查找", 240, 280, this); 26           27         /**添加*/ 28         addButton.addActionListener(new ActionListener() { 29              30             @Override 31             public void actionPerformed(ActionEvent arg0) { 32                 addnum (); 33             } 34         }); 35         /**显示*/ 36         showButton.addActionListener(new ActionListener() { 37             @Override 38             public void actionPerformed(ActionEvent e) { 39                 shownum(); 40             } 41         }); 42         /**查找*/ 43         findButton.addActionListener(new ActionListener() { 44             @Override 45             public void actionPerformed(ActionEvent e) { 46                 findnum(); 47             } 48         }); 49          50         this.setSize(400, 400); 51         this.setVisible(true); 52         this.setDefaultCloseOperation(3); 53         this.setLocationRelativeTo(null); 54      55     } 56     /**添加方法*/ 57     public void addnum (){ 58          59         String info = ""; 60         if(workName.getText().matches("[a-zA-Z\\u4e00-\\u9fa5]{2,}") == false){ 61             info += "姓名必须是2位以上的字母或汉字\n"; 62         } 63         if(workAge.getText().matches("[0-9]{1,2}")== false){ 64             info += "年龄必须是数字\n"; 65         } 66         if(workSex.getText().matches("(男|女)")== false){ 67             info += "性别必须是男或女\n"; 68         } 69         if(workTel.getText().matches("1(3|5|8)[0-9]{9}|[0][0-9]{2,3}-[0-9]{8}")== false){ 70             info += "电话必须是13、15、18开始的11位数字 或者  028-99823345\n"; 71         } 72         if (info != ""){ 73             JOptionPane.showMessageDialog(null, info); 74             return; 75         } 76         Staff worker = new Staff(); 77         worker.setName(workName.getText()); 78         worker.setAge(Integer.parseInt(workAge.getText())); 79         worker.setSex(workSex.getText()); 80         worker.setTel(workTel.getText()); 81         workers[num] = worker; 82         num++; 83         JOptionPane.showMessageDialog(null, "添加成功"); 84         if (num == workers.length){ 85             addButton.setEnabled(false); 86         } 87         workName.setText(""); 88         workAge.setText(""); 89         workSex.setText(""); 90         workTel.setText(""); 91     } 92     /**显示方法*/ 93     public void shownum (){ 94         String s = "姓名     "+"年龄     "+"性别     "+"电话\n"; 95         for(int i = 0 ;i <num ;i++){ 96             s+= workers[i].getName()+ "         " + workers[i].getAge()+ "         " +  97                     workers[i].getSex()+ "      " + workers[i].getTel()+"\n"; 98         } 99         JOptionPane.showMessageDialog(null, s);100     }101     /**查找方法*/102     public void findnum(){103         int m = -1;104         105         for(int i = 0;i< num;i++){106             if((workName.getText()).equals(workers[i].getName())){107                     m=i;108             }109         }110         111         if( m ==-1){112             JOptionPane.showMessageDialog(null, "找不到此人");113         }else {114             workAge.setText(workers[m].getAge()+"");115             workSex.setText(workers[m].getSex());116             workTel.setText(workers[m].getTel());117         }118 119     }120     121     122     123     public static void main(String[] args) {124         MainJFrame meun = new MainJFrame();125 126     }127 128 }

 

2016.9.20小程序--1