自重装系统后,电脑中两个版本的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. Delaunay剖分与平面欧几里得距离最小生成树

    这个东西代码我是对着Trinkle的写的,所以就不放代码了.. Delaunay剖分的定义: 一个三角剖分是Delaunay的当且仅当其中的每个三角形的外接圆内部(不包括边界)都没有点. 它的存在性是 ...

  2. 《PHP中的Math函数》笔记

    ① abs() 绝对值; ② ceil() 向上取整; ③ floor() 向下取整; ④ fmod() 返回除法的浮点数余数; ⑤ getrandmax() 显示随机数最大的可能值; ⑥ is_fi ...

  3. [转]jquery mobile中redirect重定向问题

    本文转自:http://www.cnblogs.com/freeliver54/p/3529813.html 在jquerymobile提交后如果要进行网页重定向时,一定要在form或<a> ...

  4. Flex中的initialize,creationComplete和applicationComp

    转自:http://blog.csdn.net/sjz168/article/details/7244374 1.Application标签中有三个事件initialize,creationCompl ...

  5. context:component-scan标签的use-default-filters属性的作用以及原理分析

    一.背景 我们在Spring+SpringMVC+Mybatis的集成开发中,经常会遇到事务配置不起作用等问题,那么本文就来分析下出现这种问题可能的原因以及解决方式. 二.分析及原理窥探 1.项目结构 ...

  6. 解决VMware虚拟机宿主机与虚拟机通讯慢

    本地连接--> 属性 --> 配置(C) -->高级 页面的属性框中找到"Large Send Offload"(中文名称叫:大量传送减负)==>Disab ...

  7. ORA-12541:TNS:no listener 客户端tnsnames.ora配置,以及服务端listener.ora配置

    需求:客户端(192.168.25.1)需要访问服务端(192.168.7.215)的Oracle库ORCL. 步骤一:配置客户端tnsnames.ora 步骤二:配置服务端listener.ora ...

  8. PermGen space

    MyEclipse内存空间不足,调整空间操作: 1.点击"Run"-"Run Configurations",在打开的窗口中点击"Arguments& ...

  9. iOS让键盘消失,取消第一响应,取消一级响应

    在开发中经常会遇到输入文本内容的时候,输入完毕的时候怎么让键盘消失的问题,有的是更改键盘的按键的方法,有的是点击屏幕的其他地方让键盘消失,个人更倾向于第二种,点击屏幕的其他地方让键盘消失,要实现这种方 ...

  10. U盘安装centos7 无法进入安装界面,进入dracut命令的解决办法。

    最近想要装一个centos7 玩一玩,就从网上下了个镜像,用UltraISO制作了安装U盘,准备在旧电脑上装一个. 结果始终无法进入安装界面,而是进入了dracut命令行. 从网上找了解决方法: