自重装系统后,电脑中两个版本的eclipse都驾崩了,起个VS也要花费半年的时间(观赏收费),所以就运用已有的工具STS编了代码,不能用JavaFX很是遗憾,只能在网上找了代码,自己修改后完成了测试。

1. 基本等价类的划分

有效等价类 无效等价类
长度:1到6 长度:0,7
字符:a-z,A-Z,0-9  字符:英文/数字以外字符,控制字符,标点符号

2. 测试用例

编号 test1 test2 test3 输出
1         12345      asdfg  ert234  true,true,true  
2 1234567 123 ert false,true,true
3 123@ 123 ert false,true,true
4 123 ert false,true,true

5

123, 123 ert false,true,true

按理说应该同时测试各个test(i)为假的情况,但以经验而谈,情况是一样的,就不做脱裤子放屁的事了。

3. 代码如下

package editbox;

import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities; public class test {
public static void main(String[] args) {
MFrame frame = new MFrame();
}
}
class MFrame extends JFrame{
public MFrame(){
JLabel jl = new JLabel("Editbox",SwingUtilities.CENTER);
Font font = new Font("宋体",Font.BOLD,24);
jl.setFont(font);
jl.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
this.add(jl,BorderLayout.NORTH);
font = new Font("宋体",Font.PLAIN,12); JLabel jl_name = new JLabel("test1:",SwingUtilities.RIGHT);
jl_name.setFont(font);
JLabel jl_pass1 = new JLabel("test2:",SwingUtilities.RIGHT);
jl_pass1.setFont(font);
JLabel jl_pass2 = new JLabel("test3:",SwingUtilities.RIGHT);
jl_pass2.setFont(font); JPanel jp_center_left = new JPanel();
jp_center_left.setLayout(new GridLayout(5,1));
jp_center_left.add(jl_name);
jp_center_left.add(jl_pass1);
jp_center_left.add(jl_pass2); JTextField jt_name = new JTextField();
JTextField jt_pass1 = new JTextField();
JTextField jt_pass2 = new JTextField(); JPanel jp_center_right = new JPanel();
jp_center_right.setLayout(new GridLayout(5,1));
jp_center_right.add(jt_name);
jp_center_right.add(jt_pass1);
jp_center_right.add(jt_pass2);
JPanel jp_center = new JPanel();
jp_center.setLayout(new GridLayout(1,2));
jp_center.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 60));
jp_center.add(jp_center_left);
jp_center.add(jp_center_right);
JButton jb1 = new JButton("OK"); jb1.addMouseListener(new MouseAdapter(){
boolean result = true;
public void mouseClicked(MouseEvent e){
String []str = new String[3];
for(int i = 0; i<3; i++){
str[i]= new String();
}
str[0] = jt_name.getText();
str[1] = jt_pass1.getText();
str[2] = jt_pass2.getText();
for(int i =0;i<3;i++){
result = true;
if(str[i].length() >0 && str[i].length()<7){
for(int j =str[i].length()-1;j>=0;j--){
if(!Character.isDigit((str[i].charAt(j)))&&!Character.isLetter(str[i].charAt(j))) {
result = false;
break;
}
}
}
else {
result = false;
}
System.out.println(str[i]);
System.out.println(result);
}
}
}); JPanel jp_south = new JPanel();
jp_south.add(jb1);
jp_south.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
this.add(jp_center);
this.add(jp_south,BorderLayout.SOUTH);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true); this.setSize(370, 280);
this.setResizable(false);
this.setLocationRelativeTo(null);
}
}

4. 结果截图

Editbox之三个框框的更多相关文章

  1. 【原】Android热更新开源项目Tinker源码解析系列之三:so热更新

    本系列将从以下三个方面对Tinker进行源码解析: Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Android热更新开源项目Tinker源码解析系列之二:资源文件热更新 A ...

  2. 最好的.NET开源免费ZIP库DotNetZip(.NET组件介绍之三)

    在项目开发中,除了对数据的展示更多的就是对文件的相关操作,例如文件的创建和删除,以及文件的压缩和解压.文件压缩的好处有很多,主要就是在文件传输的方面,文件压缩的好处就不需要赘述,因为无论是开发者,还是 ...

  3. MVC5 网站开发之三 数据存储层功能实现

    数据存储层在项目Ninesky.DataLibrary中实现,整个项目只有一个类Repository.   目录 奔跑吧,代码小哥! MVC5网站开发之一 总体概述 MVC5 网站开发之二 创建项目 ...

  4. 实战Java虚拟机之三“G1的新生代GC”

    今天开始实战Java虚拟机之三:“G1的新生代GC”. 总计有5个系列 实战Java虚拟机之一“堆溢出处理” 实战Java虚拟机之二“虚拟机的工作模式” 实战Java虚拟机之三“G1的新生代GC” 实 ...

  5. EditBox问题的实现以及Junit测试框架的简要说明

    一.这周的EditBox由一个框改为三个框,同时进行测试,下面给出程序及截图 1 import java.util.regex.Matcher; 2 import java.util.regex.Pa ...

  6. 解决sublime text3 文件名,小框框的办法

    解决sublime text3 文件名,小框框的办法 之前一直都是用的英文命名的文件夹,到前几天才发现,用中文,来命名文件夹出现了乱码问题. 今天晚上,自己也在网上去百度了很多方案,好像大部分都不太有 ...

  7. DataSnap 2009 系列之三 (生命周期篇)

    DataSnap 2009 系列之三 (生命周期篇) DataSnap 2009的服务器对象的生命周期依赖于DSServerClass组件的设置 当DSServer启动时从DSServerClass组 ...

  8. Android多线程分析之三:Handler,Looper的实现

    Android多线程分析之三:Handler,Looper的实现 罗朝辉 (http://www.cnblogs.com/kesalin/) CC 许可,转载请注明出处 在前文<Android多 ...

  9. 决战大数据之三-Apache ZooKeeper Standalone及复制模式安装及测试

    决战大数据之三-Apache ZooKeeper Standalone及复制模式安装及测试 [TOC] Apache ZooKeeper 单机模式安装 创建hadoop用户&赋予sudo权限, ...

随机推荐

  1. 前后端分离中,Gulp实现头尾等公共页面的复用

    前言 通常我们所做的一些页面,我们可以从设计图里面看出有一些地方是相同的.例如:头部,底部,侧边栏等等.如果前后端分离时,制作静态页面的同学,对于这些重复的部分只能够通过复制粘贴到新的页面来,如果页面 ...

  2. MySql: 查看当前登录用户,当前数据库

    mysql> select user();+----------------+| user() |+----------------+| root@localhost |+----------- ...

  3. codeforces 484D Kindergarten (dp、贪心)

    题意:给n个数,分成若干个连续组,每组获益为max-min,输出最大获益. 参考:http://blog.csdn.net/keshuai19940722/article/details/408735 ...

  4. git 安装教程

    昆,简单说下安装教程1,安装Git2,安装TortoiseGit3,打开第一步安装的git工具GIT BASH

  5. Erlang--proplists结构解析

    proplists 模块适用数据量较少的场景,处理配置文件和函数选项时常用.proplists对内部数据结构是Key-Value键值对形式,第一个元素做key用来查询和删除,如果一个key有多个值就会 ...

  6. Android语录

    1. application对象的生命周期是整个程序中最长的,它的生命周期就等于这个程序的生命周期.因为它是全局的单例的,所以在不同的Activity,Service中获得的对象都是同一个对象.因此在 ...

  7. Lintcode 9.Fizz Buzz 问题

    ------------------------ AC代码: class Solution { /** * param n: As description. * return: A list of s ...

  8. 阿里云CentOS7系列一 -- 安装JDK7的方法.

    最近因为数据采集以及生产环境冲突.导入windows Server 2008系统经常死机.经讨论决定把采集服务程序和生产服务进行分开.采集程序通过windows Server2008运行.而生产程序通 ...

  9. 使用AFNetWorking上传图片

    AFHTTPSessionManager *manager   = [AFHTTPSessionManager manager]; NSString *string                  ...

  10. 让Fiddler 直接抓取java程序的方法

    Fiddler官网给出的解决办法(见http://www.fiddler2.com/fiddler/help/hookup.asp#Q-JavaTraffic)是设置jvm参数,如 jre -Dpro ...