Editbox之三个框框
自重装系统后,电脑中两个版本的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之三个框框的更多相关文章
- 【原】Android热更新开源项目Tinker源码解析系列之三:so热更新
本系列将从以下三个方面对Tinker进行源码解析: Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Android热更新开源项目Tinker源码解析系列之二:资源文件热更新 A ...
- 最好的.NET开源免费ZIP库DotNetZip(.NET组件介绍之三)
在项目开发中,除了对数据的展示更多的就是对文件的相关操作,例如文件的创建和删除,以及文件的压缩和解压.文件压缩的好处有很多,主要就是在文件传输的方面,文件压缩的好处就不需要赘述,因为无论是开发者,还是 ...
- MVC5 网站开发之三 数据存储层功能实现
数据存储层在项目Ninesky.DataLibrary中实现,整个项目只有一个类Repository. 目录 奔跑吧,代码小哥! MVC5网站开发之一 总体概述 MVC5 网站开发之二 创建项目 ...
- 实战Java虚拟机之三“G1的新生代GC”
今天开始实战Java虚拟机之三:“G1的新生代GC”. 总计有5个系列 实战Java虚拟机之一“堆溢出处理” 实战Java虚拟机之二“虚拟机的工作模式” 实战Java虚拟机之三“G1的新生代GC” 实 ...
- EditBox问题的实现以及Junit测试框架的简要说明
一.这周的EditBox由一个框改为三个框,同时进行测试,下面给出程序及截图 1 import java.util.regex.Matcher; 2 import java.util.regex.Pa ...
- 解决sublime text3 文件名,小框框的办法
解决sublime text3 文件名,小框框的办法 之前一直都是用的英文命名的文件夹,到前几天才发现,用中文,来命名文件夹出现了乱码问题. 今天晚上,自己也在网上去百度了很多方案,好像大部分都不太有 ...
- DataSnap 2009 系列之三 (生命周期篇)
DataSnap 2009 系列之三 (生命周期篇) DataSnap 2009的服务器对象的生命周期依赖于DSServerClass组件的设置 当DSServer启动时从DSServerClass组 ...
- Android多线程分析之三:Handler,Looper的实现
Android多线程分析之三:Handler,Looper的实现 罗朝辉 (http://www.cnblogs.com/kesalin/) CC 许可,转载请注明出处 在前文<Android多 ...
- 决战大数据之三-Apache ZooKeeper Standalone及复制模式安装及测试
决战大数据之三-Apache ZooKeeper Standalone及复制模式安装及测试 [TOC] Apache ZooKeeper 单机模式安装 创建hadoop用户&赋予sudo权限, ...
随机推荐
- 关于datepicker只显示年、月、日的设置
关键时侯,还得看官方文档.花了半个多小时,找了网上一大堆答复,然后一一验证,90%没有能解决问题. 先给出官方文档的URL: http://bootstrap-datepicker.readthedo ...
- log4net 添加日志
1. 在config里配置一下 <configSections> <section name="log4net" type="System.Co ...
- mongoDB index introduction
索引为mongoDB的查询提供了有效的解决方案,如果没有索引,mongodb必须的扫描文档集中所有记录来match查询条件的记录.然而这些扫描是没有必要,而且每一次操作mongod进程会处理大量的数据 ...
- InstallSheild的一些常量
在用InstallShield制作安装包的时候,我们经常需要用到一些常量,弄清楚这些常量的具体含义,可以方便我们灵活使用脚本. TARGETDIR 默认安装路径,在安装过程中用户可手动更改.如:安装 ...
- C++获取当前目录
/* @author:CodingMengmeng @theme:C++获取当前目录 @time:2017-1-6 21:03:34 @blog:http://www.cnblogs.com/codi ...
- js原声快速实现选项卡
var Rea = document.getElementById("rep"); var ReaAll = Rea.querySelectorAll("li" ...
- Kafka基本原理
简介 Apache Kafka是分布式发布-订阅消息系统.它最初由LinkedIn公司开发,之后成为Apache项目的一部分.Kafka是一种快速.可扩展的.设计内在就是分布式的,分区的和可复制的提交 ...
- Redis 慢速入门(一)
网上关于redis的入门文章其实已经很多了,这里仅仅以作者特独的视角来学习下redis相关的基础概念. 一切的基础 需要分清楚3个重要的概念,key,type,value. 这里的key为hello, ...
- 2 Unique Binary Search Trees II_Leetcode
Given n, generate all structurally unique BST's (binary search trees) that store values 1...n. For e ...
- local variable 'r' referenced before assignment
这个错误是说r在使用前没有定义 def cateToNum(c): if c == 'M PRO': r = 1 if c == 'F PRO': r = 2 if c == 'M PREMIER': ...