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权限, ...
随机推荐
- Python AES - base64 加解密
首先python引用AES加密 from Crypto.Cipher import AES 需要先安装 Crypto 模块, 可以使用 easy_install 进行安装 会自动去官网进行搜索 ...
- grep-2.26 sed-4.2.2 awk-4.1.4 wget-1.18 pcregrep-8.39 pcre2grep-10.22 for windows 最新版本静态编译
-------------------------------------------------------------------------------------------- grep (G ...
- C# 使用AForge调用笔记本摄像头拍照
vs2012 winform 连接摄像头设备,这里需要引入 代码: using AForge; using AForge.Controls; using AForge.Imaging; using ...
- MVC Code First 自动生成数据库时生成的表名会多了一个s
如图:我的类文件都是不带s的
- List提取相同元素
List<int> currentList = Cls_Data.SoruceDataIntses[key]; preList = currentList.Intersect(preLis ...
- jQuery- 表单验证插件-Validation
▓▓▓▓▓▓ 大致介绍 jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆绑了一套有用的验证方法, ...
- java垃圾回收机制
1 .垃圾回收机制(GC)垃圾回收就是回收内存中不再使用对象:(1)垃圾回收的步骤:1)查找内存中不再使用的对象:2)释放这些对象所占用的内存:(2)查找内存中不再使用的对象方法:1)引用计数法如果一 ...
- iOS让键盘消失,取消第一响应,取消一级响应
在开发中经常会遇到输入文本内容的时候,输入完毕的时候怎么让键盘消失的问题,有的是更改键盘的按键的方法,有的是点击屏幕的其他地方让键盘消失,个人更倾向于第二种,点击屏幕的其他地方让键盘消失,要实现这种方 ...
- 让tomcat启动更快的设置
http://wiki.apache.org/tomcat/HowTo/FasterStartUp#Entropy_Source 关于随机数的"熵源"(entropy source ...
- F#之旅1 - Why use F#?为什么要用F#?
原文地址:http://fsharpforfunandprofit.com/why-use-fsharp/ Why use F#?Why you should consider using F# fo ...