import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
@SuppressWarnings("serial")
public class id_make extends Frame{
char text[]=new char[10];
int value[]=new int[12];
int sum,nR,check;
//台灣地區代碼 A= 10, I= 34, O= 35
char Area_Code[]={'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'I', 'O'};
//建立元件
TextArea textarea=new TextArea("", 15, 15 ,TextArea.SCROLLBARS_VERTICAL_ONLY);
Label label_1=new Label("產生字號組數:");
Label label_2=new Label("輸入身分證字號:");
TextField textfield_1=new TextField("100");
TextField textfield_2=new TextField("",8);
Button button_1=new Button("產生字號");
Button button_2=new Button("檢查字號");
//版面配置
Panel panel_1=new Panel();
Panel panel_2=new Panel(new GridLayout(6, 1, 0, 5));
//建構子
public id_make(){
//增加元件
panel_1.add(textarea);//文字區
panel_2.add(label_1);
panel_2.add(textfield_1);
panel_2.add(button_1);
panel_2.add(label_2);
panel_2.add(textfield_2);
panel_2.add(button_2);
add(panel_1);
add(panel_2);
//關閉視窗傾聽者
addWindowListener(new WindowLis());
}//建構子
//主函式
public static void main(String[] args){
id_make frame=new id_make();//建立 frame
//工作列
MenuBar menubar=new MenuBar();
Menu menu1=new Menu("檔案");
MenuItem menuitem11=new MenuItem("結束");
Menu menu2=new Menu("關於");
MenuItem menuitem21=new MenuItem("說明");
frame.setTitle("JAVA awt 身分證字號產生器");
frame.setResizable(false);//調整視窗大小
frame.setSize(300, 350);//視窗大小
frame.setLocation(300, 200);//視窗位置
frame.setBackground(Color.white);//視窗背景顏色
frame.textarea.setEditable(false);//文字區不可編輯
//版面配置
frame.setLayout(new GridBagLayout());
//建立工作列與選單
frame.setMenuBar(menubar);
menubar.add(menu1);
menu1.add(menuitem11);
menuitem11.addActionListener(frame.new CloseWindow());
menubar.add(menu2);
menu2.add(menuitem21);
menuitem21.addActionListener(frame.new ActionLis21());
//按鈕傾聽
frame.button_1.addMouseListener(frame.new Button1Lis());
frame.button_2.addMouseListener(frame.new Button2MouseLis());
//視窗可見
frame.setVisible(true);
}//主函式
class Button1Lis extends MouseAdapter{
//產生字號
public void mouseClicked(MouseEvent e){
//清空文字區
textarea.setText("");
//建立亂數
Random random=new Random();
for(long l=0;l<Long.parseLong(textfield_1.getText());l++){
//隨機字母
value[0]=random.nextInt()%26;
value[0]=Math.abs(value[0]);//絕對值
text[0]=Area_Code[value[0]];
value[0]+=10;
value[1]=value[0]/10;
value[2]=value[0]%10;
//隨機性別
value[3]=random.nextInt()%2;
value[3]=Math.abs(value[3]);//絕對值
value[3]++;
text[1]=Integer.toString(value[3]).charAt(0);
//隨機字號
for(int i=0;i<7;i++){
value[4+i]=random.nextInt()%10;
value[4+i]=Math.abs(value[4+i]);//絕對值
text[i+2]=Integer.toString(value[4+i]).charAt(0);
}
//加總
sum=value[1];
for(int i=0,j=9;i<9;i++){
sum+=value[i+2]*j;
j--;
}
//餘數
nR=sum%10;
//檢查碼
check=(nR!=0)?10-nR:nR;
text[9]=Integer.toString(check).charAt(0);
textarea.setText(textarea.getText()+String.valueOf(text)+"\n");
}//迴圈
button_1.setLabel("已產生"+Long.parseLong(textfield_1.getText())+"組");
}//mouseClicked
}//Button1Lis
class Button2MouseLis extends MouseAdapter{
//檢查字號
public void mouseClicked(MouseEvent e){
if(textfield_2.getText().length()==0){
button_2.setLabel("請輸入字號");
}else if(textfield_2.getText().length()==10){
//轉換大寫字母
text[0]=Character.toUpperCase(textfield_2.getText().charAt(0));
//轉換區碼
for(int i=1;i<10;i++){
text[i]=textfield_2.getText().charAt(i);
}
for(int i=0;i<26;i++){
if(text[0]==Area_Code[i]){
value[0]=i+10;//區碼
break;
}
}
value[1]=value[0]/10;
value[2]=value[0]%10;
//字元轉數字
for(int i=3;i<12;i++){
value[i]=Character.getNumericValue(text[i-2]);
}
//加總
sum=value[1];
for(int i=0,j=9;i<9;i++){
sum+=value[i+2]*j;
j--;
}
nR=sum%10;
//檢查碼
check=(nR!=0)?10-nR:nR;
if(check!=value[11]){
button_2.setLabel("錯誤");
}else{
button_2.setLabel("正確");
}
}else{
button_2.setLabel("不完整的字號");
}
}//mouseClicked
}//Button2MouseLis
class ActionLis21 implements ActionListener{
//顯示對話框
public void actionPerformed(ActionEvent e){
JOptionPane.showMessageDialog(null, "注意:此工具僅作程式碼研究\nBy 真的很耗呆\nFrom JavaWorld\n2007.Jan.");
}
}
class WindowLis extends WindowAdapter{
//關閉視窗
public void windowClosing(WindowEvent e){
dispose();
}
}
class CloseWindow implements ActionListener{
//結束視窗
public void actionPerformed(ActionEvent e){
dispose();//關閉視窗
}
}
}//類別
没有合适的资源?快使用搜索试试~ 我知道了~
id_make.rar_awt_id make_id_make
共11个文件
class:6个
project:1个
java:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 134 浏览量
2022-09-14
15:33:09
上传
评论
收藏 9KB RAR 举报
温馨提示
這是我近一個星期所學的 JAVA awt 套件,寫出來的身分證工具。
资源推荐
资源详情
资源评论
收起资源包目录
id_make.rar (11个子文件)
www.pudn.com.txt 218B
id_make
id_make$CloseWindow.class 609B
id_make$Button2MouseLis.class 2KB
META-INF
MANIFEST.MF 46B
id_make$ActionLis21.class 780B
id_make.java 5KB
id_make.class 3KB
id_make$Button1Lis.class 2KB
.project 383B
.classpath 221B
id_make$WindowLis.class 576B
共 11 条
- 1
资源评论
周楷雯
- 粉丝: 79
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功