1、private JButton jb=new JButton("按钮")这句话声明了一个按钮,名字叫jb。
2、jb.addActionListener(this)这里给jb那个按钮设置了监听,默认为点击触发,当然你写的这个监听有点怪异~
3、点击按钮jb触发监听处理方法actionPerformed,在这里可以做你想要的 *** 作,你代码实现的是改变lab这个label标签的内容。
4、至于java中为什么要用监听,这就像银行装监控一样,监视你的一举一动,银行装监控是为了捕捉每个进银行的人的动作,预防危险的发生。
java中做监听同样是为了监视某个客户端动作用的,万一你给我搞破坏怎么办(监听的作用远不止如此),当然也像平时生活中不是所有的地方都要放监控,要不就没法过了,java中也不是所有的地方都要放监听,具体哪里要放监听,不该是在课本里学的,应该根据实际工厂、公司的需求来定。
import java.util.Scannerpublic class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in)
System.out.println("输入你要验证的邮箱:")
String mail = sc.next()
//@出现的下标
int atIndex = 0
//.出现的下标
int fullIndex = 0
//第一次出现的下标
atIndex = mail.indexOf('@', 0)
//第一次出现的下标
fullIndex = mail.indexOf('.', 0)
//判断@是否出现.后面
if(atIndex >= fullIndex) {
System.out.println("此邮箱不合法!")
System.exit(0)
}
//判断@是否只有一个
if(mail.indexOf('@', 0) != mail.lastIndexOf('@')) {
System.out.println("此邮箱不合法!")
System.exit(0)
}
//判断.是否只有一个
if(mail.indexOf('.', 0) != mail.lastIndexOf('.')) {
System.out.println("此邮箱不合法!")
System.exit(0)
}
//判断@前面是否是1到40个字符
if(!(atIndex >= 1 && atIndex <= 40)) {
System.out.println("此邮箱不合法!")
System.exit(0)
}
//判断@前面是否为字母
for (int i = 0 i < atIndex i++) {
if (!((mail.charAt(i) >= 'a' && mail.charAt(i) <= 'z')||(mail.charAt(i) >= 'A' && mail.charAt(i) <= 'Z'))) {
System.out.println("此邮箱不合法!")
System.exit(0)
}
}
//判断@到.是否为只能是1到40个字符
if(!(fullIndex - atIndex - 1 >= 1 && fullIndex - atIndex - 1 <= 40)) {
System.out.println("此邮箱不合法!")
System.exit(0)
}
//判断@到.直接的是否为字母或数字
for (int i = atIndex+1 i < fullIndex i++) {
if (!((mail.charAt(i) >= 'a' && mail.charAt(i) <= 'z')||(mail.charAt(i) >= 'A' && mail.charAt(i) <= 'Z')||(mail.charAt(i)>='0'&&mail.charAt(i)<='9'))) {
System.out.println("此邮箱不合法!")
System.exit(0)
}
}
//判断.后面的是2到3长度的字符
if (!(mail.length() - fullIndex - 1 >= 2 && mail.length() - fullIndex -1 <= 3) ){
System.out.println("此邮箱不合法!")
System.exit(0)
}
//判断.后面的是英文字母
for (int i = fullIndex+1 i < mail.length() i++) {
if (!((mail.charAt(i) >= 'a' && mail.charAt(i) <= 'z')||(mail.charAt(i) >= 'A' && mail.charAt(i) <= 'Z'))) {
System.out.println("此邮箱不合法!")
System.exit(0)
}
}
System.out.println("此邮箱是合法的!")
}
}
首先使用java提供的格式类判断email是否格式有误,然后使用开源框架,验证邮箱是否有用,示例如下:
public static boolean checkEmail(String email) {if (!email.matches("[\\w\\.\\-]+@([\\w\\-]+\\.)+[\\w\\-]+")) {
return false
}
String host = ""
String hostName = email.split("@")[1]
Record[] result = null
SMTPClient client = new SMTPClient()
try {
// 查找MX记录
Lookup lookup = new Lookup(hostName, Type.MX)
lookup.run()
if (lookup.getResult() != Lookup.SUCCESSFUL) {
return false
} else {
result = lookup.getAnswers()
}
// 连接到邮箱服务器
for (int i = 0 i < result.length i++) {
host = result[i].getAdditionalName().toString()
client.connect(host)
if (!SMTPReply.isPositiveCompletion(client.getReplyCode())) {
client.disconnect()
continue
} else {
break
}
}
//以下2项自己填写快速的,有效的邮箱
client.login("163.com")
client.setSender("sxgkwei@163.com")
client.addRecipient(email)
if (250 == client.getReplyCode()) {
return true
}
} catch (Exception e) {
e.printStackTrace()
} finally {
try {
client.disconnect()
} catch (IOException e) {
}
}
return false
}
需要的jar支持:commons-net-2.2.jar,dnsjava-2.1.1.jar
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)