本人没有毕业前写的一篇关于JAVA的程序,今天找回来,做为纪念之用。
本人虽然喜欢java,可是对它的数据库的处理能力实在是不敢恭维
而且我还想用windows操作系统对java的支持的能力,来直接运行我的程序
这样可以直接发布,而体积却是非常的小。不到30kb啊!
当然需要编写一个run.bat 里面只要一句就行了“jview sjk”
还要把sjk.class和run.bat 放在同一个目录下。
下面是原理简述:
1:从文件中将数据逐行读入,添加的到向量中,一行数据成为一个向量元素。
2:从向量中,将任意的元素取出,分解为字段,进行其他处理,或者发送到textfield中
3:可以对向量中的元素添加,删除,替换,查找等数据库似的操作。
4:可以从textfield中将数据取出,合为一个string,添加到向量中,注意的是,每个字段的顺序要记住,每个字段间要有分界点“:"。
5:将向量中的所有元素逐一取出,合为一个string,每个元素之间要有换行符“\n"。最后退出程序时
将这个string写到文件里。实现数据保存。
//2003/08/20 用java开发的程序
import java.io.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
public class sjk extends frame implements actionlistener
{
int x=100; int y=50; int index=0;
static vector alldata;
string all,zkzh,sfzh,xm,csrq,bkdj,yzbm,txdz,sjcj,bscj,xbstr,find;
checkbox xb;
static java.awt.list list1;
button first,last,pre,next,addb,editb,delb,findb,flashb;
textfield zkzhed,sfzhed,xmed,csrqed,bkdjed,yzbmed,txdzed,sjcjed,bscjed,t10,finded;
//生成菜单组件/
menubar mb1=new menubar();
menu m1=new menu("文件");menu m2=new menu("设置"); menu m3=new menu("信息");
menuitem open=new menuitem("打开"); menuitem backc=new menuitem("背景");
sjk(){
super("数据管理----java练习程序 2003/08/22");
setsize(800,600);
setbackground(color.lightgray);//color.lightgray
setforeground(color.blue);
setfont(new font("宋体",font.plain,12));
addwindowlistener(new windowadapter()
{
public void windowclosing(windowevent e){ save();system.exit(0); }
} );
first=new button("首位");last=new button("末位");
pre=new button("前翻");next=new button("后翻");
addb=new button("添加");editb=new button("修改");
delb=new button("删除");findb=new button("查 找");
flashb=new button("刷新");
zkzhed=new textfield();sfzhed=new textfield();xmed =new textfield();
csrqed=new textfield();bkdjed=new textfield();yzbmed=new textfield();
txdzed=new textfield();sjcjed=new textfield();bscjed=new textfield();
t10=new textfield();
finded=new textfield();
setlayout(null);
xb=new checkbox("性别"); add(xb);xb.setbounds(x+80,y+140,50,20);
list1=new java.awt.list(10,false); add(list1);list1.setbounds(x+430,y+40,100,300);
add(first);first.setbounds(x+30,y+300, 50,20); add(addb);addb.setbounds(x+130,y+300,50,20);
add(last);last.setbounds(x+30,y+320, 50,20); add(editb);editb.setbounds(x+130,y+320,50,20);
add(pre);pre.setbounds(x+80,y+300, 50,20); add(delb);delb.setbounds(x+180,y+300,50,20);
add(next);next.setbounds(x+80,y+320, 50,20); add(findb);findb.setbounds(x+300,y+300,120,20);
add(flashb);flashb.setbounds(x+180,y+320,50,20);
first.addactionlistener(this);last.addactionlistener(this);
pre.addactionlistener(this);next.addactionlistener(this);
addb.addactionlistener(this);editb.addactionlistener(this);
delb.addactionlistener(this);findb.addactionlistener(this);
flashb.addactionlistener(this);
list1.addactionlistener(this);
add(zkzhed);zkzhed.setbounds(x+80,y+80,120,20); add(sfzhed);sfzhed.setbounds(x+300,y+80,120,20);
add(xmed);xmed.setbounds(x+80,y+120,120,20); add(csrqed);csrqed.setbounds(x+300,y+120,120,20);
add(bkdjed);bkdjed.setbounds(x+80,y+160,120,20); add(yzbmed);yzbmed.setbounds(x+300,y+160,120,20);
add(sjcjed);sjcjed.setbounds(x+80,y+200,120,20); add(bscjed);bscjed.setbounds(x+300,y+200,120,20);
add(txdzed);txdzed.setbounds(x+80,y+240,340,20); add(t10);t10.setbounds(x+80,y+40,340,20);
add(finded);finded.setbounds(x+300,y+320,120,20);
addl("准考证号",x+25,y+80,50,20); addl("身份证号",x+245,y+80,50,20);
addl("姓 名",x+25,y+120,50,20); addl("出生日期",x+245,y+120,50,20);
addl("报考等级",x+25,y+160,50,20); addl("邮政编码",x+245,y+160,50,20);
addl("上机成绩",x+25,y+200,50,20); addl("笔试成绩",x+245,y+200,50,20);
addl("通讯地址",x+25,y+240,50,20); addl("信息提示",x+25, y+40,50,20);
//生成菜单组件/
m1.add(open);open.addactionlistener(this);mb1.add(m1);mb1.add(m2);mb1.add(m3);
m2.add(backc);
setmenubar(mb1);
show();
}
///
public static void main(string args[])throws java.io.ioexception
{
string str;
alldata=new vector(1,1);
sjk wqh=new sjk();
filereader fr=new filereader("data.wqh");
bufferedreader br=new bufferedreader(fr);
while((str=br.readline())!=null)
{
alldata.addelement(str);
list1.add(str.substring(0,8));
}
br.close();
fr.close();
}
public void actionperformed(actionevent e)
{
toolkit.getdefaulttoolkit().beep();
if(e.getsource()==first){index=0;getdata();}
if(e.getsource()==last){alldata.trimtosize();index=alldata.size()-1;getdata();}
if(e.getsource()==pre){index=index-1;if(index<0){index=0;}getdata();}
if(e.getsource()==next){index=index+1;if(index>alldata.size()-1){index=alldata.size()-1;}getdata();}
if(e.getsource()==addb){if(iferr()==0){adddata();}}
if(e.getsource()==editb){if((iferr()==0) || (iferr()==2)){editdata();}}
if(e.getsource()==delb){deldata();}
if(e.getsource()==findb){finddata(finded.gettext());}
if(e.getsource()==flashb){flash();save();}
if(e.getsource()==list1){finddata(list1.getselecteditem());t10.settext("");}
}
/
/
/
void addl(string lname,int x,int y ,int w,int h){label l=new label (lname);add(l);l.setbounds(x,y,w,h);}//addl end;
/
void getdata()
{
int len;
int temp=1;
int it[]=new int[11];
string abc,d;
abc=alldata.elementat(index).tostring();
len=abc.length();
for(int i=0;i{
d=abc.substring(i,i+1);
if(d.equals(":")==true){it[temp]=i;temp=temp+1;}
}
zkzh=abc.substring(0,it[1]);
sfzh=abc.substring(it[1]+1,it[2]);
xm=abc.substring(it[2]+1,it[3]);
csrq=abc.substring(it[3]+1,it[4]);
xbstr=abc.substring(it[4]+1,it[5]);
bkdj=abc.substring(it[5]+1,it[6]);
yzbm=abc.substring(it[6]+1,it[7]);
sjcj=abc.substring(it[7]+1,it[8]);
bscj=abc.substring(it[8]+1,it[9]);
txdz=abc.substring(it[9]+1,it[10]);
setdata();
}
/
int iferr()
{
int a=0;
if(zkzhed.gettext().length() <8){a=1;t10.settext("准考证号位数不足!");}
if(sfzhed.gettext().length()<18){a=1;t10.settext("身份证号位数不足!");}
if( xmed.gettext().length()<2) {a=1;t10.settext("姓 名位数不足!");}
if(csrqed.gettext().length()<10){a=1;t10.settext("出生日期位数不足!");}
if(bkdjed.gettext().length()<1) {a=1;t10.settext("报考等级位数不足!");}
if(yzbmed.gettext().length()<6){a=1;t10.settext("邮政编码位数不足!");}
if(bscjed.gettext().length()<2) {a=1;t10.settext("笔试成绩位数不足!");}
if(sjcjed.gettext().length()<1) {a=1;t10.settext("上机成绩位数不足!");}
if(txdzed.gettext().length()<10){a=1;t10.settext("通讯地址位数不足!");}
for(int i=0; i{
if(alldata.elementat(i).tostring().substring(0,8).equals(zkzhed.gettext())==true){a=2;t10.settext("该考生已存在!");}
}
return (a);
}
/
string getall()
{
if(xb.getstate()==true){xbstr="男";}else{xbstr="女";}
zkzh=zkzhed.gettext();
sfzh=sfzhed.gettext();
xm = xmed.gettext();
csrq=csrqed.gettext();
bkdj=bkdjed.gettext();
yzbm=yzbmed.gettext();
txdz=txdzed.gettext();
sjcj=sjcjed.gettext();
bscj=bscjed.gettext();
all=zkzh+":"+sfzh+":"+xm+":"+csrq+":"+xbstr+":"+bkdj+":"+yzbm+":"+sjcj+":"+bscj+":"+txdz+"::";
return all;
}
/
void flash()
{ t10.settext("");
zkzhed.settext("");
sfzhed.settext("");
xmed.settext("");
csrqed.settext("");
bkdjed.settext("");
yzbmed.settext("");
txdzed.settext("");
sjcjed.settext("");
bscjed.settext("");
finded.settext("");
save();
}
/
void setdata()
{
zkzhed.settext(zkzh);
sfzhed.settext(sfzh);
xmed.settext(xm);
csrqed.settext(csrq);
bkdjed.settext(bkdj);
yzbmed.settext(yzbm);
txdzed.settext(txdz);
sjcjed.settext(sjcj);
bscjed.settext(bscj);
if(xbstr.equals("男")==true){xb.setstate(true); xb.setlabel("男");}
else {xb.setstate(false);xb.setlabel("女");}
}
void save()
{
string wqh=new string();
int wqhlen;
try{
filewriter out=new filewriter("data.wqh");
alldata.trimtosize();
wqhlen=alldata.size();
for(int i=0; i {
wqh=wqh+string.valueof(alldata.elementat(i))+"\n";
}
out.write(wqh);
out.close();
}
catch(ioexception ioe){}
}
/
void adddata()
{
string aaa;
aaa=getall();
alldata.addelement(aaa);
list1.add(aaa.substring(0,8));
}
void deldata()
{
string bbb;
bbb=getall();
alldata.removeelement(bbb);
list1.remove(bbb.substring(0,8));
}
void editdata()
{
string ccc;
ccc=getall();
list1.remove(alldata.elementat(index).tostring().substring(0,8));
list1.add(ccc.substring(0,8));
alldata.setelementat(ccc,index);
t10.settext("");
}
void finddata(string eee)
{
int alllen;
alllen=alldata.size();
for(int i=0;i{
if(alldata.elementat(i).tostring().substring(0,8).equals(eee)==true)
{
index=i;
getdata();
}
}
}
}//end
本人虽然喜欢java,可是对它的数据库的处理能力实在是不敢恭维
而且我还想用windows操作系统对java的支持的能力,来直接运行我的程序
这样可以直接发布,而体积却是非常的小。不到30kb啊!
当然需要编写一个run.bat 里面只要一句就行了“jview sjk”
还要把sjk.class和run.bat 放在同一个目录下。
下面是原理简述:
1:从文件中将数据逐行读入,添加的到向量中,一行数据成为一个向量元素。
2:从向量中,将任意的元素取出,分解为字段,进行其他处理,或者发送到textfield中
3:可以对向量中的元素添加,删除,替换,查找等数据库似的操作。
4:可以从textfield中将数据取出,合为一个string,添加到向量中,注意的是,每个字段的顺序要记住,每个字段间要有分界点“:"。
5:将向量中的所有元素逐一取出,合为一个string,每个元素之间要有换行符“\n"。最后退出程序时
将这个string写到文件里。实现数据保存。
//2003/08/20 用java开发的程序
import java.io.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
public class sjk extends frame implements actionlistener
{
int x=100; int y=50; int index=0;
static vector alldata;
string all,zkzh,sfzh,xm,csrq,bkdj,yzbm,txdz,sjcj,bscj,xbstr,find;
checkbox xb;
static java.awt.list list1;
button first,last,pre,next,addb,editb,delb,findb,flashb;
textfield zkzhed,sfzhed,xmed,csrqed,bkdjed,yzbmed,txdzed,sjcjed,bscjed,t10,finded;
//生成菜单组件/
menubar mb1=new menubar();
menu m1=new menu("文件");menu m2=new menu("设置"); menu m3=new menu("信息");
menuitem open=new menuitem("打开"); menuitem backc=new menuitem("背景");
sjk(){
super("数据管理----java练习程序 2003/08/22");
setsize(800,600);
setbackground(color.lightgray);//color.lightgray
setforeground(color.blue);
setfont(new font("宋体",font.plain,12));
addwindowlistener(new windowadapter()
{
public void windowclosing(windowevent e){ save();system.exit(0); }
} );
first=new button("首位");last=new button("末位");
pre=new button("前翻");next=new button("后翻");
addb=new button("添加");editb=new button("修改");
delb=new button("删除");findb=new button("查 找");
flashb=new button("刷新");
zkzhed=new textfield();sfzhed=new textfield();xmed =new textfield();
csrqed=new textfield();bkdjed=new textfield();yzbmed=new textfield();
txdzed=new textfield();sjcjed=new textfield();bscjed=new textfield();
t10=new textfield();
finded=new textfield();
setlayout(null);
xb=new checkbox("性别"); add(xb);xb.setbounds(x+80,y+140,50,20);
list1=new java.awt.list(10,false); add(list1);list1.setbounds(x+430,y+40,100,300);
add(first);first.setbounds(x+30,y+300, 50,20); add(addb);addb.setbounds(x+130,y+300,50,20);
add(last);last.setbounds(x+30,y+320, 50,20); add(editb);editb.setbounds(x+130,y+320,50,20);
add(pre);pre.setbounds(x+80,y+300, 50,20); add(delb);delb.setbounds(x+180,y+300,50,20);
add(next);next.setbounds(x+80,y+320, 50,20); add(findb);findb.setbounds(x+300,y+300,120,20);
add(flashb);flashb.setbounds(x+180,y+320,50,20);
first.addactionlistener(this);last.addactionlistener(this);
pre.addactionlistener(this);next.addactionlistener(this);
addb.addactionlistener(this);editb.addactionlistener(this);
delb.addactionlistener(this);findb.addactionlistener(this);
flashb.addactionlistener(this);
list1.addactionlistener(this);
add(zkzhed);zkzhed.setbounds(x+80,y+80,120,20); add(sfzhed);sfzhed.setbounds(x+300,y+80,120,20);
add(xmed);xmed.setbounds(x+80,y+120,120,20); add(csrqed);csrqed.setbounds(x+300,y+120,120,20);
add(bkdjed);bkdjed.setbounds(x+80,y+160,120,20); add(yzbmed);yzbmed.setbounds(x+300,y+160,120,20);
add(sjcjed);sjcjed.setbounds(x+80,y+200,120,20); add(bscjed);bscjed.setbounds(x+300,y+200,120,20);
add(txdzed);txdzed.setbounds(x+80,y+240,340,20); add(t10);t10.setbounds(x+80,y+40,340,20);
add(finded);finded.setbounds(x+300,y+320,120,20);
addl("准考证号",x+25,y+80,50,20); addl("身份证号",x+245,y+80,50,20);
addl("姓 名",x+25,y+120,50,20); addl("出生日期",x+245,y+120,50,20);
addl("报考等级",x+25,y+160,50,20); addl("邮政编码",x+245,y+160,50,20);
addl("上机成绩",x+25,y+200,50,20); addl("笔试成绩",x+245,y+200,50,20);
addl("通讯地址",x+25,y+240,50,20); addl("信息提示",x+25, y+40,50,20);
//生成菜单组件/
m1.add(open);open.addactionlistener(this);mb1.add(m1);mb1.add(m2);mb1.add(m3);
m2.add(backc);
setmenubar(mb1);
show();
}
///
public static void main(string args[])throws java.io.ioexception
{
string str;
alldata=new vector(1,1);
sjk wqh=new sjk();
filereader fr=new filereader("data.wqh");
bufferedreader br=new bufferedreader(fr);
while((str=br.readline())!=null)
{
alldata.addelement(str);
list1.add(str.substring(0,8));
}
br.close();
fr.close();
}
public void actionperformed(actionevent e)
{
toolkit.getdefaulttoolkit().beep();
if(e.getsource()==first){index=0;getdata();}
if(e.getsource()==last){alldata.trimtosize();index=alldata.size()-1;getdata();}
if(e.getsource()==pre){index=index-1;if(index<0){index=0;}getdata();}
if(e.getsource()==next){index=index+1;if(index>alldata.size()-1){index=alldata.size()-1;}getdata();}
if(e.getsource()==addb){if(iferr()==0){adddata();}}
if(e.getsource()==editb){if((iferr()==0) || (iferr()==2)){editdata();}}
if(e.getsource()==delb){deldata();}
if(e.getsource()==findb){finddata(finded.gettext());}
if(e.getsource()==flashb){flash();save();}
if(e.getsource()==list1){finddata(list1.getselecteditem());t10.settext("");}
}
/
/
/
void addl(string lname,int x,int y ,int w,int h){label l=new label (lname);add(l);l.setbounds(x,y,w,h);}//addl end;
/
void getdata()
{
int len;
int temp=1;
int it[]=new int[11];
string abc,d;
abc=alldata.elementat(index).tostring();
len=abc.length();
for(int i=0;i{
d=abc.substring(i,i+1);
if(d.equals(":")==true){it[temp]=i;temp=temp+1;}
}
zkzh=abc.substring(0,it[1]);
sfzh=abc.substring(it[1]+1,it[2]);
xm=abc.substring(it[2]+1,it[3]);
csrq=abc.substring(it[3]+1,it[4]);
xbstr=abc.substring(it[4]+1,it[5]);
bkdj=abc.substring(it[5]+1,it[6]);
yzbm=abc.substring(it[6]+1,it[7]);
sjcj=abc.substring(it[7]+1,it[8]);
bscj=abc.substring(it[8]+1,it[9]);
txdz=abc.substring(it[9]+1,it[10]);
setdata();
}
/
int iferr()
{
int a=0;
if(zkzhed.gettext().length() <8){a=1;t10.settext("准考证号位数不足!");}
if(sfzhed.gettext().length()<18){a=1;t10.settext("身份证号位数不足!");}
if( xmed.gettext().length()<2) {a=1;t10.settext("姓 名位数不足!");}
if(csrqed.gettext().length()<10){a=1;t10.settext("出生日期位数不足!");}
if(bkdjed.gettext().length()<1) {a=1;t10.settext("报考等级位数不足!");}
if(yzbmed.gettext().length()<6){a=1;t10.settext("邮政编码位数不足!");}
if(bscjed.gettext().length()<2) {a=1;t10.settext("笔试成绩位数不足!");}
if(sjcjed.gettext().length()<1) {a=1;t10.settext("上机成绩位数不足!");}
if(txdzed.gettext().length()<10){a=1;t10.settext("通讯地址位数不足!");}
for(int i=0; i{
if(alldata.elementat(i).tostring().substring(0,8).equals(zkzhed.gettext())==true){a=2;t10.settext("该考生已存在!");}
}
return (a);
}
/
string getall()
{
if(xb.getstate()==true){xbstr="男";}else{xbstr="女";}
zkzh=zkzhed.gettext();
sfzh=sfzhed.gettext();
xm = xmed.gettext();
csrq=csrqed.gettext();
bkdj=bkdjed.gettext();
yzbm=yzbmed.gettext();
txdz=txdzed.gettext();
sjcj=sjcjed.gettext();
bscj=bscjed.gettext();
all=zkzh+":"+sfzh+":"+xm+":"+csrq+":"+xbstr+":"+bkdj+":"+yzbm+":"+sjcj+":"+bscj+":"+txdz+"::";
return all;
}
/
void flash()
{ t10.settext("");
zkzhed.settext("");
sfzhed.settext("");
xmed.settext("");
csrqed.settext("");
bkdjed.settext("");
yzbmed.settext("");
txdzed.settext("");
sjcjed.settext("");
bscjed.settext("");
finded.settext("");
save();
}
/
void setdata()
{
zkzhed.settext(zkzh);
sfzhed.settext(sfzh);
xmed.settext(xm);
csrqed.settext(csrq);
bkdjed.settext(bkdj);
yzbmed.settext(yzbm);
txdzed.settext(txdz);
sjcjed.settext(sjcj);
bscjed.settext(bscj);
if(xbstr.equals("男")==true){xb.setstate(true); xb.setlabel("男");}
else {xb.setstate(false);xb.setlabel("女");}
}
void save()
{
string wqh=new string();
int wqhlen;
try{
filewriter out=new filewriter("data.wqh");
alldata.trimtosize();
wqhlen=alldata.size();
for(int i=0; i {
wqh=wqh+string.valueof(alldata.elementat(i))+"\n";
}
out.write(wqh);
out.close();
}
catch(ioexception ioe){}
}
/
void adddata()
{
string aaa;
aaa=getall();
alldata.addelement(aaa);
list1.add(aaa.substring(0,8));
}
void deldata()
{
string bbb;
bbb=getall();
alldata.removeelement(bbb);
list1.remove(bbb.substring(0,8));
}
void editdata()
{
string ccc;
ccc=getall();
list1.remove(alldata.elementat(index).tostring().substring(0,8));
list1.add(ccc.substring(0,8));
alldata.setelementat(ccc,index);
t10.settext("");
}
void finddata(string eee)
{
int alllen;
alllen=alldata.size();
for(int i=0;i{
if(alldata.elementat(i).tostring().substring(0,8).equals(eee)==true)
{
index=i;
getdata();
}
}
}
}//end