一.介绍
本文档介绍如何使用 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号码,点击“点击”,如下图: