在员工管理的GUI练习中加入数据验证。也就是在添加对象进数组之前,先作数据合法性的验证,数据合法再作添加。 姓名:2个以上的字母或汉字 性别:必须是男或女 年龄:必须为数字 电话:13、15、18开

原创 2018年04月17日 19:36:57

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

 

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

性别:必须是男或女

年龄:必须为数字

电话:131518开始的11位数字 或者  028-99823345 (区号是三位和四位的数字。电话为7-8位的数字)


员工验证
package work;

public class Staff {
    private String name;
    private int age;
    private String sex;
    private String tel;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getTel() {
        return tel;
    }

    public void setTel(String tel) {
        this.tel = tel;
    }

}

这里我写了一个架包需要鼠标右键build path一下,你就会看到奶牛瓶了

package work;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JOptionPane;

import component.MyButton;
import component.Mytest;

public class MainJFrame extends JFrame{
    private   Mytest workName = new  Mytest("姓名", 60, 40, this);
    private  Mytest workAge = new  Mytest("年龄", 60, 100, this);
    private  Mytest workSex = new  Mytest("性别", 60, 160, this);
    private  Mytest workTel = new  Mytest("电话", 60, 220, this);
  
    
    private MyButton addButton = new MyButton("添加", 40, 280, this);
    
    static int num = 0;
    public static Staff [] workers = new Staff[2];
    
    public MainJFrame(){
        this.setTitle("我的窗体");
        this.setLayout(null);
         MyButton showButton = new MyButton("显示", 140, 280, this);
         MyButton findButton = new MyButton("查找", 240, 280, this);
         
        /**添加*/
        addButton.addActionListener(new ActionListener() {
            
            @Override
            public void actionPerformed(ActionEvent arg0) {
                addnum ();
            }
        });
        /**显示*/
        showButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                shownum();
            }
        });
        /**查找*/
        findButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                findnum();
            }
        });
        
        this.setSize(400, 400);
        this.setVisible(true);
        this.setDefaultCloseOperation(3);
        this.setLocationRelativeTo(null);
    
    }
    /**添加方法*/
    public void addnum (){
        
        String info = "";
        if(workName.getText().matches("[a-zA-Z\\u4e00-\\u9fa5]{2,}") == false){
            info += "姓名必须是2位以上的字母或汉字\n";
        }
        if(workAge.getText().matches("[0-9]{1,2}")== false){
            info += "年龄必须是数字\n";
        }
        if(workSex.getText().matches("(男|女)")== false){
            info += "性别必须是男或女\n";
        }
        if(workTel.getText().matches("1(3|5|8)[0-9]{9}|[0][0-9]{2,3}-[0-9]{8}")== false){
            info += "电话必须是13、15、18开始的11位数字 或者  028-99823345\n";
        }
        if (info != ""){
            JOptionPane.showMessageDialog(null, info);
            return;
        }
        Staff worker = new Staff();
        worker.setName(workName.getText());
        worker.setAge(Integer.parseInt(workAge.getText()));
        worker.setSex(workSex.getText());
        worker.setTel(workTel.getText());
        workers[num] = worker;
        num++;
        JOptionPane.showMessageDialog(null, "添加成功");
        if (num == workers.length){
            addButton.setEnabled(false);
        }
        workName.setText("");
        workAge.setText("");
        workSex.setText("");
        workTel.setText("");
    }
    /**显示方法*/
    public void shownum (){
        String s = "姓名     "+"年龄     "+"性别     "+"电话\n";
        for(int i = 0 ;i <num ;i++){
            s+= workers[i].getName()+ "         " + workers[i].getAge()+ "         " +
                    workers[i].getSex()+ "      " + workers[i].getTel()+"\n";
        }
        JOptionPane.showMessageDialog(null, s);
    }
    /**查找方法*/
    public void findnum(){
        int m = -1;
        
        for(int i = 0;i< num;i++){
            if((workName.getText()).equals(workers[i].getName())){
                    m=i;
            }
        }
        
        if( m ==-1){
            JOptionPane.showMessageDialog(null, "找不到此人");
        }else {
            workAge.setText(workers[m].getAge()+"");
            workSex.setText(workers[m].getSex());
            workTel.setText(workers[m].getTel());
        }

    }
    
    
    
    public static void main(String[] args) {
        MainJFrame meun = new MainJFrame();

    }

}


oracle 创建表性别字段取'男'或者'女',默认为'男'

创建表时候就定义性别字段: DEFAULT  ’男‘  定义默认为 ’男‘,CHECK约束只能从’男‘、’女‘中选择。 CREATE TABLE pp(  ID      INT,  NAME ...
  • u011588304
  • u011588304
  • 2015-07-26 16:15:53
  • 4900

如何用sql语句对性别的 约束条件让它只能填 男 或 女

ALTER   TABLE   tb   WITH   NOCHECK       ADD   CONSTRAINT   col1_check   CHECK   (性别 in(男,女)) ...
  • lee576
  • lee576
  • 2007-04-20 23:52:00
  • 16002

Java设计person类,有姓名,年龄,性别。要求:该类至多只能创建一男,一女两个对象。

课后习题 Java设计person类,有姓名,年龄,性别。要求:该类至多只能创建一男,一女两个对象。 package com.liuyanzhao; class Person { privat...
  • LIU_YANZHAO
  • LIU_YANZHAO
  • 2017-05-22 14:55:37
  • 843

性别字段在数据库中存储数字,查询时,如何查询出数字对应的男和女?(case when的应用)

今天敲代码的时候,刚好遇到这个问题,写博客记一下。 情况如下:性别字段在数据库中存储的是数字,男对应1,女对应0。然后,查询的时候,我想查询出男和女两个字,而不是1和0。 一开始,我写的sql语句...
  • qq_27435059
  • qq_27435059
  • 2016-03-29 23:13:13
  • 1893

身份证号码合法性判断

问题描述:  我国公民的身份证号码特点如下: 1、长度为18位; 2、第1~17位只能为数字; 3、第18位可以是数字或者小写英文字母x。 4、身份证号码的第7~14位表示持有人生日的年、月...
  • hs794502825
  • hs794502825
  • 2014-07-22 21:27:49
  • 5017

使用JS 校验15或18位身份证的合法性以及得到所属地区,出生日期,性别

如果比较的两者中有bool,会把 bool 先转换为对应的 number,即 0 和 1 如果比较的双方中有一方为number一方为string,会把string转换为数字 把string直接转换为b...
  • Qiing_yi
  • Qiing_yi
  • 2013-08-26 15:54:04
  • 3400

python:标识符必须以字母或下划线开头,后面跟字母,下划线或者数字

标识符合法性检查,首先要以字母或者下划线开始,后面要跟字母,下划线或者或数字.这个小例子只检查长度大于等于 2 的标识符idcheck.py#!/usr/bin/env python ''' idch...
  • yj_fhw
  • yj_fhw
  • 2017-03-21 18:42:05
  • 821

黄淮学院2010学年第二学期SQL server期末考试

  • 2011年10月27日 16:07
  • 61KB
  • 下载

关于Visual Server 2005的第一个问题

关于Visual Server 2005的第一个问题最近在做一个Visual Server 2005的COM开发,把那个Developer Guide的第一个获取Visual Server 2005版...
  • lizhizhe2000
  • lizhizhe2000
  • 2007-11-30 11:06:00
  • 1572

性别(0,1)转为(男,女)的方法总结

 方法1:Select   CASE sex      WHEN 1 THEN 男      WHEN 0 THEN 女     ELSE 不男不女?哈哈   END AS sexfrom testn...
  • kucool
  • kucool
  • 2007-10-10 17:47:00
  • 2618
收藏助手
不良信息举报
您举报文章:在员工管理的GUI练习中加入数据验证。也就是在添加对象进数组之前,先作数据合法性的验证,数据合法再作添加。 姓名:2个以上的字母或汉字 性别:必须是男或女 年龄:必须为数字 电话:13、15、18开
举报原因:
原因补充:

(最多只允许输入30个字)