欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 美景 > 使用 Java Swing 的 IMEI 验证器

使用 Java Swing 的 IMEI 验证器

2024/10/24 11:19:43 来源:https://blog.csdn.net/xiefeng240601/article/details/140962990  浏览:    关键词:使用 Java Swing 的 IMEI 验证器

一.介绍

本文档介绍如何使用 Java Swing 创建一个简单的 IMEI 验证器应用程序。

二.什么是 IMEI 号码

IMEI 代表国际移动设备识别码。IMEI 用于在移动设备连接到网络时对其进行识别。每个 GSM、CDMA 或卫星移动设备都有唯一的 IMEI 号码。此号码将印在设备电池组件内。用户可以通过拨打“*#06#”来查找其设备的 IMEI 号码。IMEI 是一个 15 位数字,最后一位数字称为“校验位”,可以使用 Luhn 算法进行识别。

三.Luhn 算法

Luhn 算法又称为“Modulus 10”算法。这是一种简单的校验和公式,用于验证各种识别码,例如信用卡号、IMEI 号、美国国家提供商识别码和加拿大 社会保险号。它由IBM科学家Hans Peter Luhn创建。验证是通过验证校验位来完成的。

  1. 将最右边每个第二位数字的值加倍(第一个右边的数字作为校验位)。
  2. 将步骤 (1) 中的乘积和原始数字中未受影响的数字相加。
  3. 如果总数模 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 验证器

  1. 打开 Eclipse 并创建新的 Java 项目。


2. 将项目命名为 ImeiValidator 并单击“完成”。


3.现在打开包资源管理器并右键单击 ImeiValidator。


4. 创建一个名为 Imeivalidator 的新类:

  1. 在类中写入如下代码:
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");  }  }  }  }  }  
}    

  1. 现在使用运行 -> 以…方式运行 -> Java 应用程序来运行该应用程序。

  1. 将显示以下窗口:

  1. 输入IMEI号码,点击“点击”,如下图:

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com