📄 student.java
字号:
import java.io.*;
import java.awt.*;
import java.awt.Dialog;
import javax.swing.*;
import java.awt.event.*;
import java.sql.*;
import java.util.*;
import java.util.StringTokenizer;
public class Student extends JFrame implements ActionListener{
JTabbedPane dbTabPane;
JPanel viewPanel;//浏览
JPanel inputPanel;//添加
JPanel updatePanel;//修改
JPanel deletePanel;//删除
JPanel findPanel;//查找
Frame save1panel=new Frame();
Label filename1 =new Label("文件名1:");
TextField txt1=new TextField(8);
Button s1Btn=new Button("确定");
JButton inputBtn;
Luru inputInnerPanel;
JTextArea viewArea;
JButton viewBtn;
Luru updateInnerPanel;
JLabel updateInputLb1;
JTextField updateInputText;
JButton updateBtn;
Luru deleteInnerPanel;
JLabel inputNoLable;
JTextField inputNoField;
JButton deleteBtn;
JButton noBtn;
JButton jiguanBtn;
JButton nameBtn;
JButton saveBtn;
JTextField noText=new JTextField(8);
JTextField jiguanText=new JTextField(8);
JTextField nameText=new JTextField(8);
JTextArea resultArea;
public Student(){
super("学生籍贯信息记录簿");
setGUIComponent();
}
public void setGUIComponent(){
Container c=getContentPane();
c.setLayout(new BorderLayout());
dbTabPane=new JTabbedPane();
//定义保存
save1panel.setLayout(new FlowLayout());
save1panel.add(filename1);
save1panel.add(txt1);
save1panel.add(s1Btn);
s1Btn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String ss="";
ss=resultArea.getText();
String t1=txt1.getText();
FileOutputStream out;
PrintStream p;
StringTokenizer t=new StringTokenizer(ss,"\n");
String ss1="";
try{
out=new FileOutputStream(t1);
p=new PrintStream(out);
while(t.hasMoreTokens()){
ss1=t.nextToken();
p.println(ss1);
}
}catch(Exception e2){
System.err.println("Error writing to file");
}
//p.close();
save1panel.dispose();
}
});
//定义浏览面板
viewPanel=new JPanel();
viewPanel.setLayout(new BorderLayout());
viewArea=new JTextArea(6,35);
viewBtn=new JButton("浏览");
saveBtn=new JButton("保存");
viewPanel.add(new JScrollPane(viewArea),BorderLayout.CENTER);
viewPanel.add(viewBtn,BorderLayout.SOUTH);
viewBtn.addActionListener(this);
dbTabPane.add("浏览",viewPanel);
//查找面板
findPanel=new JPanel();
findPanel.setLayout(new FlowLayout());
noBtn=new JButton("按学号查找");
nameBtn=new JButton("按姓名查找");
jiguanBtn=new JButton("按籍贯查找");
saveBtn=new JButton("保存");
resultArea=new JTextArea(6,35);
noBtn.addActionListener(this);
saveBtn.addActionListener(this);
nameBtn.addActionListener(this);
jiguanBtn.addActionListener(this);
findPanel.add(noText);
findPanel.add(noBtn);
findPanel.add(nameText);
findPanel.add(nameBtn);
findPanel.add(jiguanText);
findPanel.add(jiguanBtn);
findPanel.add(resultArea);
findPanel.add(saveBtn);
dbTabPane.add("查找",findPanel);
noText.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
}
});
nameText.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
}
});
jiguanText.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
}
});
//添加面板
inputPanel=new JPanel();
inputPanel.setLayout(new FlowLayout());
inputBtn=new JButton("添加");
inputBtn.addActionListener(this);
inputInnerPanel=new Luru();
inputPanel.add(inputInnerPanel);
inputPanel.add(inputBtn);
dbTabPane.add("添加",inputPanel);
//定义修改面板
updateInnerPanel=new Luru();
updateInputLb1=new JLabel("输入学号:");
updateInputText=new JTextField(8);
updateInputText.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String s="";
updateInputText.setText("s");
}
});
updateBtn=new JButton("修改");
updateBtn.addActionListener(this);
updatePanel=new JPanel();
updatePanel.add(updateInnerPanel);
updatePanel.add(updateInputLb1);
updatePanel.add(updateInputText);
updatePanel.add(updateBtn);
dbTabPane.add("修改",updatePanel);
//定义删除界面
deleteInnerPanel=new Luru();
inputNoLable=new JLabel("输入学号:");
inputNoField=new JTextField(8);
inputNoField.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
}
});
deleteBtn=new JButton("删除");
deleteBtn.addActionListener(this);
deletePanel=new JPanel();
deletePanel.add(deleteInnerPanel);
deletePanel.add(inputNoLable);
deletePanel.add(inputNoField);
deletePanel.add(deleteBtn);
dbTabPane.add("删除",deletePanel);
c.add(BorderLayout.NORTH,dbTabPane);
}
//写文件方法
static void writeData(Message[] e,PrintWriter out)
throws IOException{
out.println(e.length);
int i;
for(i=0;i<e.length;i++)
e[i].writeData(out);
}
//读文件方法
static Message[] readData(BufferedReader in)
throws IOException{
int n=Integer.parseInt(in.readLine());
Message[] e=new Message[n];
int i;
for(i=0;i<n;i++){
e[i]=new Message();
e[i].readData(in);
}
return e;
}
public void viewRecord(){
String ss="";
ss+="学号\t"+"姓名\t"+"籍贯\n";
try{//打开文件并从文件中读数据
BufferedReader in1=new BufferedReader(new FileReader("student.txt"));
Message[] e=readData(in1);
for(int i=0;i<e.length;i++)
{
ss+=e[i].getno()+"\t";
ss+=e[i].getname()+"\t";
ss+=e[i].getjiguan();
ss+="\n";
}
in1.close();
}
catch(IOException e){
System.out.print("Error:"+e);
System.exit(1);
}
viewArea.setText(ss);
}
public void noserch() //按学号查找
{
String s="";
s=noText.getText();
int ns=Integer.parseInt(s);
String result="";
result+="学号\t"+"姓名\t"+"籍贯\n";
try{
BufferedReader in=new BufferedReader(new FileReader("student.txt"));
Message[] e=readData(in);
for(int i=0;i<e.length;i++)
{
int pp=Integer.parseInt(e[i].getno());
if(ns==pp)
{
result+=e[i].getno()+"\t";
result+=e[i].getname()+"\t";
result+=e[i].getjiguan()+"\n";
}
}
in.close();
}
catch(IOException e){
System.out.print("Error:"+e);
System.exit(1);
}
resultArea.setText(result);
}
public void nameserch() //按姓名查找
{
String s="";
s=nameText.getText();
String result="";
result+="学号\t"+"姓名\t"+"籍贯\n";
try{
BufferedReader in=new BufferedReader(new FileReader("student.txt"));
Message[] e=readData(in);
for(int i=0;i<e.length;i++)
{
int j=s.compareTo(e[i].getname());
if(j==0)
{
result+=e[i].getno()+"\t";
result+=e[i].getname()+"\t";
result+=e[i].getjiguan()+"\n";
}
}
in.close();
}
catch(IOException e){
System.out.print("Error:"+e);
System.exit(1);
}
resultArea.setText(result);
}
public void jiguanserch() //按籍贯查找
{
String s="";
s=jiguanText.getText();
String result="";
result+="学号\t"+"姓名\t"+"籍贯\n";
try{
BufferedReader in=new BufferedReader(new FileReader("student.txt"));
Message[] e=readData(in);
for(int i=0;i<e.length;i++)
{
int j=s.compareTo(e[i].getjiguan());
if(j==0)
{
result+=e[i].getno()+"\t";
result+=e[i].getname()+"\t";
result+=e[i].getjiguan()+"\n";
}
}
in.close();
}
catch(IOException e){
System.out.print("Error:"+e);
System.exit(1);
}
resultArea.setText(result);
}
public void updateRecord(){ //修改
String xno="";
xno=updateInputText.getText();
try{
BufferedReader in=new BufferedReader(new FileReader("student.txt"));
Message[] e=readData(in);
for(int i=0;i<e.length;i++)
{
int j=xno.compareTo(e[i].getno());
if(j==0)
{
String udno=updateInnerPanel.noField.getText();
String udname=updateInnerPanel.nameField.getText();
String udjiguan=updateInnerPanel.jiguanField.getText();
e[i].changeno(udno);
e[i].changename(udname);
e[i].changejiguan(udjiguan);
in.close();
try{ //打开文件并写入文件
PrintWriter out=new PrintWriter(new FileWriter("student.txt"));
writeData(e,out);
out.close();
}
catch(IOException e1){
System.out.print("Error:"+e1);
System.exit(1);
}
}
}
}
catch(IOException e){
System.out.print("Error:"+e);
System.exit(1);
}
}
public void inputRecord(){ //添加
try{
BufferedReader in=new BufferedReader(new FileReader("student.txt"));
Message[] e=readData(in);
String udno=inputInnerPanel.noField.getText();
String udname=inputInnerPanel.nameField.getText();
String udjiguan=inputInnerPanel.jiguanField.getText();
Message[] f=new Message[e.length+1];
for(int i=0;i<e.length;i++){
f[i]=e[i];
}
Message h=new Message(udno,udname,udjiguan);
f[e.length]=h;
in.close();
try{ //打开文件并写入文件
PrintWriter out=new PrintWriter(new FileWriter("student.txt"));
writeData(f,out);
out.close();
}
catch(IOException e1){
System.out.print("Error:"+e1);
System.exit(1);
}
}
catch(IOException e){
System.out.print("Error:"+e);
System.exit(1);
}
}
public void deleteRecord(){ //删除
String xno="";
xno=inputNoField.getText();
try{
BufferedReader in=new BufferedReader(new FileReader("student.txt"));
Message[] e=readData(in);
Message[] f=new Message[e.length-1];
for(int i=0,j=0;i<e.length;)
{
int h=xno.compareTo(e[i].getno());
if(h!=0)
{
f[j]=e[i];
i++;j++;
}
else{
i++;
}
}
in.close();
try{ //打开文件并写入文件
PrintWriter out=new PrintWriter(new FileWriter("student.txt"));
writeData(f,out);
out.close();
}
catch(IOException e1){
System.out.print("Error:"+e1);
System.exit(1);
}
}catch(IOException e){
System.out.print("Error:"+e);
System.exit(1);
}
}
public void saveRecord(){
save1panel.show();
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==viewBtn){
viewRecord();
}
else if(e.getSource()==noBtn){
noserch();
}
else if(e.getSource()==nameBtn){
nameserch();
}
else if(e.getSource()==jiguanBtn){
jiguanserch();
}
else if(e.getSource()==updateBtn){
updateRecord();
}
else if(e.getSource()==inputBtn){
inputRecord();
}
else if(e.getSource()==deleteBtn){
deleteRecord();
}
else if(e.getSource()==saveBtn){
saveRecord();
}
}
public static void main(String []args){
Message[] s=new Message[10];
s[0]=new Message("010","张唯唯","四川");
s[1]=new Message("011","李勇","江西");
s[2]=new Message("012","刘晨","四川");
s[3]=new Message("013","王敏","湖南");
s[4]=new Message("014","张小立","河北");
s[5]=new Message("015","李玲","四川");
s[6]=new Message("016","曹钰","内蒙古");
s[7]=new Message("017","陈颖","江西");
s[8]=new Message("018","许丽勤","福建");
s[9]=new Message("019","李梅","上海");
try{ //打开文件并写入文件
PrintWriter out=new PrintWriter(new FileWriter("student.txt"));
writeData(s,out);
out.close();
}
catch(IOException e5){
System.out.print("Error:"+e5);
System.exit(1);
}
Student sm=new Student();
sm.setSize(650,250);
sm.setVisible(true);
sm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -