内容发布更新时间 : 2024/12/23 0:06:57星期一 下面是文章的全部内容请认真阅读。
btn_add.addActionListener(this); btn_rep.addActionListener(this); btn_xg.addActionListener(this); btn_sh.addActionListener(this); btn_cx.addActionListener(this); setVisible(true);
4.2添加功能的实现
定义addDate()方法实现学籍信息的添加,使用getText()方法获取文本框中的学生学籍信息,并使用PrintWriter(new FileWriter( new File(\类下的println()方法将信息写入文件text1.txt。其中每个学籍信息之间用|隔开,并换行保存以方便信息的的读取和查询。添加成功之后执行setText()方法使各个文本框中的信息为空以方便其他功能的实现。以下为具体的代码: public void addDate(){
String sex = null; if(rb_man.isSelected()){
sex=rb_man.getText();}
else {
sex=rb_woman.getText(); }
JOptionPane.showMessageDialog(null, \学号:\姓
名:\+ txt_name.getText()+\性别\+ \班级:\txt_class.getText() + \系别:\
PrintWriter mm = null; String
fs
=txt_num.getText()+\department.getText();
try {
mm = new PrintWriter(new FileWriter( new File(\mm.println(fs);
9
} catch (IOException e1) {
e1.printStackTrace();
}
mm.close();
JOptionPane.showMessageDialog(null, \添加成功\\温馨提示\
JOptionPane.INFORMATION_MESSAGE);
txt_num.setText(null); txt_name.setText(null); txt_class.setText(null); txt_department.setText(null); bg.remove(rb_man); bg.remove(rb_woman); rb_man.setSelected(false); rb_woman.setSelected(false); }
4.3重置功能的实现
使用setText()方法使各个文本框中的信息为空,使用JRadioButton 类下的remove()和setSelected(flase)方法使性别单选按钮置为未被选定状态。 public void repDate(){ txt_num.setText(null); txt_name.setText(null); txt_class.setText(null);
txt_department.setText(null); bg.remove(rb_man); bg.remove(rb_woman); rb_man.setSelected(false); rb_woman.setSelected(false); bg.add(rb_man);
bg.add(rb_woman); sfzText1.setText(\ bnameText1.setText(\ dateText1.setText(\ xb.setText(\ xbText1.setText(\
10
infoLab.setText(\学生信息\
}
4.4查询功能的实现
定义查询方法实现查询功能,首先使用equals方法进行判别学号输入区文本框中的内容是否为空,为空的时候则提示用回输入学号进行查询,不为空使用类BufferedReader下的readLine()方法正行读取文件text1.txt中的内容, 使用类StringTokenizer对读取的整行数据以“|“进行分割,每个分割点的内容赋值给String类型的num,name,sex,grade,xibie。再次使用equal方法判断学号输入文本框中的内容是否和num相同,若相同则依次使用setText()方法将学籍信息显示区的文本框内容设置为所查找的文件数据。其中包括文件的异常处理。以下为具体代码: public void CheckDate(){
if (txt_num.getText().toString().equals(\
JOptionPane.showMessageDialog(null, \请输入学号\\温馨提示\
JOptionPane.INFORMATION_MESSAGE); }
try {
in
=
new
BufferedReader(new
BufferedReader FileReader(\ String s;
while((s=in.readLine())!=null) {
StringTokenizer t=new StringTokenizer(s,\
num=t.nextToken();
name=t.nextToken(); sex=t.nextToken(); grade =t.nextToken(); xibie =t.nextToken();
if(num.equals(txt_num.getText())){
sfzText1.setText(num);
11
bnameText1.setText(name); dateText1.setText(xibie); xb.setText(sex); xbText1.setText(grade); infoLab.setText(\查询成功!\
}
} catch (IOException e) { }
e.printStackTrace();
}
删除功能的实现
删除学籍信息时用户只需输入学生的学号即可删除文本文件中的该生的学籍信息,其实现是基于查询功能,首先是查询文本文件中的数据,如果输入的学号和查询到的信息相同时,提示用户是否要删除该生学籍信息,如果选择是(Y),则删除该学生的所有信息。在实现删除功能时,本系统采用缓冲流StringBuffer buf的相关特性,在信息匹配成功之后,使用readLine()方法自动查找到该学籍信息在文本文件中所在的行,将该行之前的内容使用append()方法追加到缓冲流buf中,而该行数据则设置为空追加至buf中,该行之后的内容则正常追加至buf中,然后再写入文本文件text1.txt中,其中也包括对文件读取写入的异常的处理,从而实现了信息的删除。以下为具体代码: public void deleteDate(){
if(rb_man.isSelected()){
sex=rb_man.getText();}
else {
sex=rb_woman.getText(); }
String m=\确定要删除该学生的记录吗? \\n请检查文本文件中的数据格
12
式确保每行数据之间和文本最后无空行\ int
ok=JOptionPane.showConfirmDialog(null,m,\
确
认
\ if(ok==JOptionPane.YES_OPTION){
try {
in
=
new
BufferedReader(new
BufferedReader FileReader(\ String s;
while((s=in.readLine())!=null) {
StringTokenizer t=new StringTokenizer(s,\
num=t.nextToken();
name=t.nextToken(); sex=t.nextToken(); grade =t.nextToken(); xibie =t.nextToken();
if(num.equals(txt_num.getText())){
oldStr = num +\
}
} catch (IOException e) { }
try {
File file = new File(\ BufferedReader
st
=
new
BufferedReader(new
InputStreamReader(new FileInputStream(file)));
StringBuffer buf = new StringBuffer(); String s=null;
13