一.介绍
本文档介绍如何使用 Java Swing 创建一个简单的 IMEI 验证器应用程序。
二.什么是 IMEI 号码
IMEI 代表国际移动设备识别码。IMEI 用于在移动设备连接到网络时对其进行识别。每个 GSM、CDMA 或卫星移动设备都有唯一的 IMEI 号码。此号码将印在设备电池组件内。用户可以通过拨打“*#06#”来查找其设备的 IMEI 号码。IMEI 是一个 15 位数字,最后一位数字称为“校验位”,可以使用 Luhn 算法进行识别。
三.Luhn 算法
Luhn 算法又称为“Modulus 10”算法。这是一种简单的校验和公式,用于验证各种识别码,例如信用卡号、IMEI 号、美国国家提供商识别码和加拿大 社会保险号。它由IBM科学家Hans Peter Luhn创建。验证是通过验证校验位来完成的。
- 将最右边每个第二位数字的值加倍(第一个右边的数字作为校验位)。
- 将步骤 (1) 中的乘积和原始数字中未受影响的数字相加。
- 如果总数模 10 等于 0,则该数字有效,否则无效。
一个简单的例子:手机的 IMEI 号-354557030810924
步骤1
第2步
3+1+0+4+1+0+5+1+4+0+6+0+1+6+1+0+9+4+4=50
步骤3
50%10=0。因此上述数字是有效数字。
四.使用 Java Swing 的 IMEI 验证器
- 打开 Eclipse 并创建新的 Java 项目。
2. 将项目命名为 ImeiValidator 并单击“完成”。
3.现在打开包资源管理器并右键单击 ImeiValidator。
4. 创建一个名为 Imeivalidator 的新类:
- 在类中写入如下代码:
import javax.swing.*;
import java.awt.BorderLayout;
import java.awt.event.*;
public class Imei {
JFrame frame;
JButton button;
JTextField field;
JLabel label;
JLabel warninglabel;
Box panel;
public static void main(String[] args) {
Imei hl = new Imei();
hl.gui();
}
public void gui() {
panel = Box.createVerticalBox();
frame = new JFrame();
button = new JButton("Click");
field = new JTextField(15);
field.putClientProperty("JComponent.sizeVariant", "mini");
label = new JLabel("Enter the IMEI Number");
warninglabel = new JLabel("");
//adding contents to frame
panel.add(label);
panel.add(field);
panel.add(warninglabel);
panel.add(button);
frame.getContentPane().add(BorderLayout.NORTH, panel);
frame.setVisible(true);
frame.setSize(300, 300);
button.addActionListener(new buttonAction());
}
public class buttonAction implements ActionListener {
public void actionPerformed(ActionEvent ev) {
int sum = 0;
String ImeiNo = field.getText();
if (ImeiNo.length() != 15) {
warninglabel.setText("IMEI Number should contain 15 characters");
} else
{
boolean errorflag = false;
for (int i = 0; i <= 14; i++) {
//getting ascii value for each character
char c = ImeiNo.charAt(i);
int number = c;
//Assigning number values to corrsponding Ascii value
if (number < 48 || number > 57) {
warninglabel.setText("Enter only numerals");
errorflag = true;
break;
} else
{
switch (number) {
case 48:
number = 0;
break;
case 49:
number = 1;
break;
case 50:
number = 2;
break;
case 51:
number = 3;
break;
case 52:
number = 4;
break;
case 53:
number = 5;
break;
case 54:
number = 6;
break;
case 55:
number = 7;
break;
case 56:
number = 8;
break;
case 57:
number = 9;
break;
}
//Double the even number and divide it by 10. add quotient and remainder
if ((i + 1) % 2 == 0) {
number = number * 2;
number = number / 10 + number % 10;
}
sum = sum + number;
}
}
// Check the error flag to avoid overWriting of Warning Lable
if (!errorflag) {
if (sum % 10 == 0) {
warninglabel.setText("Valid");
} else
{
warninglabel.setText("Invalid");
}
}
}
}
}
}
- 现在使用运行 -> 以…方式运行 -> Java 应用程序来运行该应用程序。
- 将显示以下窗口:
- 输入IMEI号码,点击“点击”,如下图: