📄 mainframe.java
字号:
package cardid;
import java.awt.*;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2007</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class MainFrame
extends JFrame {
JPanel contentPane;
JLabel lblTitle = new JLabel();
JLabel lblFifteen = new JLabel();
JLabel lblEighteen = new JLabel();
JLabel lblBirthday = new JLabel();
JLabel lblsex = new JLabel();
JTextField txtFifteen = new JTextField();
JTextField txtBirthday = new JTextField();
JTextField txtsex = new JTextField();
JButton btnChange = new JButton();
JButton btnReset = new JButton();
JTextField txtEighteen = new JTextField();
public MainFrame() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
}
catch (Exception exception) {
exception.printStackTrace();
}
}
/**
* Component initialization.
*
* @throws java.lang.Exception
*/
private void jbInit() throws Exception {
contentPane = (JPanel) getContentPane();
contentPane.setLayout(null);
setSize(new Dimension(459, 480));
setTitle("身份证更改程序");
lblTitle.setFont(new java.awt.Font("Dialog", Font.PLAIN, 30));
lblTitle.setHorizontalAlignment(SwingConstants.CENTER);
lblTitle.setHorizontalTextPosition(SwingConstants.CENTER);
lblTitle.setText("身份证号码15位转18位");
lblTitle.setBounds(new Rectangle(58, 43, 338, 42));
lblFifteen.setText("15位身份证号码");
lblFifteen.setBounds(new Rectangle(45, 138, 103, 20));
lblEighteen.setText("18位身份证号码");
lblEighteen.setBounds(new Rectangle(44, 180, 104, 20));
lblBirthday.setText("出生日期");
lblBirthday.setBounds(new Rectangle(92, 223, 56, 20));
lblsex.setText("性别");
lblsex.setBounds(new Rectangle(116, 266, 32, 20));
txtFifteen.setText("");
txtFifteen.setBounds(new Rectangle(172, 136, 221, 25));
txtBirthday.setEditable(false);
txtBirthday.setText("");
txtBirthday.setBounds(new Rectangle(172, 227, 221, 25));
txtsex.setEditable(false);
txtsex.setBounds(new Rectangle(172, 271, 221, 25));
btnChange.setBounds(new Rectangle(107, 353, 85, 29));
btnChange.setText("转换");
btnChange.addActionListener(new MainFrame_btnChange_actionAdapter(this));
btnReset.setBounds(new Rectangle(254, 353, 140, 29));
btnReset.setText("重新输入");
btnReset.addActionListener(new MainFrame_btnReset_actionAdapter(this));
txtEighteen.setEditable(false);
txtEighteen.setText("");
txtEighteen.setBounds(new Rectangle(172, 181, 220, 25));
contentPane.add(lblTitle);
contentPane.add(txtFifteen);
contentPane.add(txtBirthday);
contentPane.add(txtsex);
contentPane.add(btnReset);
contentPane.add(btnChange);
contentPane.add(txtEighteen);
contentPane.add(lblEighteen);
contentPane.add(lblsex);
contentPane.add(lblBirthday);
contentPane.add(lblFifteen);
}
public void btnReset_actionPerformed(ActionEvent e) {
//重新输入的代码
txtFifteen.setText("");
txtEighteen.setText("");
txtBirthday.setText("");
txtsex.setText("");
}
private String Convert(String cardid) {
StringBuffer newCardId = new StringBuffer("");
int sum = 0;
final int v_List[] = {
2, 4, 8, 5, 10, 9, 7, 3, 6, 1, 2, 4, 8, 5, 10, 9, 7};
final String strTailChars = "10X98765432";
newCardId.append(cardid.substring(0, 6));
newCardId.append("19");
newCardId.append(cardid.substring(6, cardid.length()));
String s = newCardId.toString();
for (int i = 0; i < s.length(); i++) {
int tmp = Integer.parseInt(s.substring(i, i + 1));
sum += tmp * v_List[v_List.length - 1 - i];
}
int k = sum % 11;
System.out.println(newCardId.toString() + ": " + k);
newCardId.append(strTailChars.substring(k, k + 1));
return newCardId.toString();
}
private String getDate(String cardid) {
String date = "";
date = "19" + cardid.substring(6, 8) + "年" + cardid.substring(8, 10) + "月" +
cardid.substring(10, 12) + "日";
return date;
}
private String getSex(String cardid) {
String sex = "";
int tmp = Integer.parseInt(cardid.substring(cardid.length() - 1));
if (tmp % 2 == 0) {
sex = "女";
}
else {
sex = "男";
}
return sex;
}
private boolean isNotNum(String cardid)
{
boolean flag = false;
String numFormat = "0123456789";
for(int i=0;i<cardid.length();i++)
{
if(numFormat.indexOf(cardid.substring(i,i+1)) == -1)
{
flag = true;
break;
}
}
return flag;
}
public void btnChange_actionPerformed(ActionEvent e) {
//获取用户输入的ID
String fifteen = txtFifteen.getText().trim();
//非空判断
if (fifteen.equals("")) {
JOptionPane.showMessageDialog(this, "请重新输入!!!");
return;
}
//是否都是数字判断
if(isNotNum(fifteen))
{
JOptionPane.showMessageDialog(this, "不合法,请重新输入!!!");
return;
}
//长度判断
if (fifteen.length() < 15) {
JOptionPane.showMessageDialog(this,
"您输入的号码为" + fifteen.length() + "位,请重新输入!!!");
txtFifteen.setText("");
return;
}
//转换并设置
txtEighteen.setText(Convert(fifteen));
//得到生日并设置
txtBirthday.setText(getDate(fifteen));
//得到性别并设置
txtsex.setText(getSex(fifteen));
}
}
class MainFrame_btnChange_actionAdapter
implements ActionListener {
private MainFrame adaptee;
MainFrame_btnChange_actionAdapter(MainFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.btnChange_actionPerformed(e);
}
}
class MainFrame_btnReset_actionAdapter
implements ActionListener {
private MainFrame adaptee;
MainFrame_btnReset_actionAdapter(MainFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.btnReset_actionPerformed(e);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -