2016.9.20小程序--1

Posted 爱吃胡豆

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序代码片段分享

小程序各种功能代码片段整理---持续更新

Android获取各个应用程序的缓存文件代码小片段(使用AIDL)

提效小技巧——记录那些不常用的代码片段

小程序基础13:模板

Android小部件,启动一个片段?