2016.9.20小程序--1

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

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

性别:必须是男或女

年龄:必须为数字

电话:13、15、18开始的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 }
时间: 2024-08-05 19:16:44

2016.9.20小程序--1的相关文章

11.20 小程序开发总结 (1)

小程序接口: 1.getCurrentPages  获取页面前几个页面的所有app.js 信息 (太强了!!我竟然才知道) 用途:获取上个页面的函数来获取做数据交互, 类似react 父级给子级传参,函数等. 代码: var pages = getCurrentPages(); var prevPage = pages[pages.length - 2]; //上一个页面 此时获取到上个页面所有的函数,及其参数; 2.小程序二维码传参,分享传参 需求:新版小程序中分享(转发)接口调整,无法携带参

2016.9.26小程序---数据库小练习1

1 -- createbbc, 1, 50 2 DROP TABLE bbc; 3 4 CREATE INDEX bbc_region ON bbc(region); 5 6 7 -- tabbbc, 1, 50 8 INSERT INTO bbc VALUES ('Afghanistan','South Asia',652225,26000000,NULL); 9 INSERT INTO bbc VALUES ('Albania','Europe',28728,3200000,66560000

2016.9.23小程序---数据库

学生表:t_student编号s_id 整形 主键 自增姓名:s_name 字符串 不允许重复 性别:s_sex 字符串 默认值 男 年龄:s_age 整形 班级: s_class 字符串 建表 并添加数据,数据不能少于10条,并完成以下题目 1.把刘基的名字修改为刘伯温2.唐伯虎年龄20,性别男,班级为T130,添加到表中 3.查询出所有姓名包括伯的所有的人员的信息4,查询年龄在10-20之间的所有人员的信息5,查询前5条年龄在10-20之间的所有人员的信息6,将年龄在10-20之间的所有人员

2016.9.19小程序

制作一个界面完成员工信息的添加.显示和查找 实现步骤: 1.制作界面 2.建立员工类,包含姓名.年龄.性别.电话4个私有属性,加上get和set方法作为访问器和修改器 3.在事件类中加入一个员工数组的属性,用于保存员工信息,加入一个number的属性,用于记录员工的人数. 4.当单击添加时,从四个文本框中得到信息,并封装成员工对象,然后将员工对象加入员工数组,人数加1.如果超出数组的长度,添加按钮变灰,阻止用户继续添加. 5.当单击显示时,弹出对话框,显示现有员工的信息. 6.在姓名文本框中输入

2016.9.22小程序

制作日志 实现步骤: a.制作一个日志类(LogObj),该类提供一个记录日志的方法public void writeLog(String info){}该方法要求记录用户登陆信息. b.创建目录log,用于存放日志文件.创建文件流以追加方式写入文件,以当前日期的年月日做文件名.文件名格式为:2011-12-05.txt c.创建一个登陆类,书写GUI界面.利用事件要求用户输入用户名和密码,如果登陆成功则写入日志.“张三在 15:32:30 登陆系统.”.如果登陆失败,则写入“非法用户张三在 1

2016.9.27小程序---数据库练习1

1 -- createbbc, 1, 50 2 DROP TABLE bbc; 3 4 5 CREATE INDEX bbc_region ON bbc(region); 6 7 GO 8 -- tabbbc, 1, 50 9 INSERT INTO bbc VALUES ('Afghanistan','South Asia',652225,26000000,NULL); 10 INSERT INTO bbc VALUES ('Albania','Europe',28728,3200000,66

2016.9.26小程序---数据库练习2

1 -- createnobel, 1, 50 2 DROP TABLE nobel; 3 CREATE TABLE nobel( 4 yr INT -- 年份 5 ,SUBJECT VARCHAR(15) -- 奖项 6 ,winner VARCHAR(50) -- 获奖者 7 )DEFAULT CHARSET=utf8; 8 9 GO 10 -- tabnobel, 1, 50 11 INSERT INTO nobel VALUES (1901,'Chemistry','Jacobus H.

广州门店小程序应用开发

(门店小程序应用请联系杨先生:136-3141-0167可加V信) 小程序之所以如此火热,一方面在于微信的确十分重视它,消息不断,另一方面在于小程序开发门槛低,接地气;这两点都非常适合线下传统门店转型电商,作为小程序开发商赢在移动认为门店小程序的开发成本低,并且能给门店有效引来线上流量,提升门店人气,实现销售额增长. 门店小程序实现与顾客零距离,提升顾客服务和体验 1.让顾客无需到店也能随时获取门店最新资讯,门店24小时不打烊; 2.满足顾客线上咨询.线下实体门店体验,为顾客提供更人性化的服务;

2016年中国微信小程序专题研究报告

2016年12月29日,全球领先的移动互联网第三方数据挖掘和分析机构iiMedia Research(艾媒咨询)权威首发<2016年中国微信小程序专题研究报告>. 报告显示,82.6%手机应用开发者已经开始关注小程序.21.8%手机应用开发者明确表示愿意接入小程序,53.9%开发者正在持观望状态,24.3%开发者则暂时没有考虑接入小程序. 以下为报告详细内容: 艾媒咨询分析师认为,小程序作为一种新型手机服务方式,将对人类生活各方面造成一定程度影响,移动端服务消费将为用户提供更大的便利性,更会对