求Java小程序

导入Java . awt . *;

导入Java . io . *;

导入Java . util . *;

导入Java . awt . event . *;

导入javax . swing . *;

公共类短信{

公共静态void main(String[] args)引发异常{

ui manager . setlookandfeel(ui manager . getsystemlookandfeelclassname());

JFrame f = new JFrame("学生信息管理");

f . setdefaultcloseoperation(JFrame。EXIT _ ON _ CLOSE);

f.setSize(688,380);

f . setresizable(false);

f . setlocationrelativeto(null);

f . setcontentpane(new SMSPanel());

f . set visible(true);

}

}

//主面板

SMSPanel类扩展JPanel实现ActionListener{

private static final long serialVersionUID = 6923196760525083410L;

私有字符串file path = " c:/students . info . txt ";//文件路径

private student model sm = new student model(file path);

私有JTextField名称,id,classname,addr。

私JComboBox性,部;

private JButton添加、查询、显示info;

私有JScrollPane jsp

私有JRadioButton r1,R2;

私有ButtonGroup组;

private JTextField querystr

私人网站panel spanel;

SMSPanel(){

超级(空);

//第一行组件

This.addLabel ("name:",10,10,32,20);

this.name=tf(38,10,48,20);

This.addLabel("性别:",96,10,32,20);

这个。sex = new jcombobox (new string [] { "男性","女性" });

this.sex.setBounds(124,10,38,20);

this.add(性);

this.addLabel("ID:",172,10,20,20);

this.id=tf(190,10,80,20);

This.addLabel ("system:",280,10,20,20);

this.department=new JComboBox(

新字符串[]{“日语”、“英语”、“法语”、“德语”、“鸟类”、“花卉”、“呵呵”});

this.department.setBounds(300,10,50,20);

this.add(部门);

This.addLabel ("class:",360,10,22,20);

this.classname=tf(382,10,38,20);

This.addLabel("产地:",430,10,32,20);

this.addr=tf(462,10,100,20);

this . add = new JButton(" join ");

this.add.setBounds(575,10,58,20);

this.add(添加);

//第一行组件的结尾

//第二行组件:

This.addLabel("查询:",10,48,32,20);

this.querystr=tf(50,48,100,20);

this . r 1 = new JRadioButton(" by name ",true);

this . r 1 . set bounds(155,48,78,20);

this . add(r 1);

This.r2=new JRadioButton("根据ID ");

this.r2.setBounds(234,48,65,20);

this . add(R2);

This.query=new JButton("执行查询");

this.query.setSize(88,20);

this . query . set location(310,48);

this.add(查询);

this . show allinfo = new JButton(" show all ");

this.showAllInfo.setBounds(428,48,88,20);

this . add(show allinfo);

this . spanel = new sitem panel(sm);

this . JSP = new JScrollPane(spanel);

this.jsp.setLocation(10,90);

this.jsp.setSize(658,232);

this . add(JSP);

group = new button group();

group . add(r 1);

group . add(R2);

this . add . addactionlistener(this);

this . query . addactionlistener(this);

this . show allinfo . addactionlistener(this);

}

//创建一个新的LABEL对象并将其添加到面板中。

private void addLabel(String s,int x,int y,int w,int h){

JLabel l =新JLabel(s);

l.setBounds(x,y,w,h);

添加(l);

}

private JTextField tf(int x,int y,int w,int h){

JTextField t = new JTextField();

t.setBounds(x,y,w,h);

this . add(t);

return t;

}

public void action performed(action event e){

//加入新同学

if(e.getSource()。等于(加)){

if(check()){

Joptionpane。显示消息对话框(这个,“字段没有完全填写”,“错误”,jooptionpane。warning _ message);

返回;

}

否则{

boolean st =

如果(st){

reset();

spanel . showall students();

}

其他

Joption窗格。显示消息对话框(这,“具有相同ID的学生已经存在”,“错误”,JOptionPane。WARNING _ MESSAGE);

}

}

//显示查询出的学生信息。

else if(e.getSource()。等于(查询)){

String qs = querystr.getText()。trim();

boolean isname = r 1 . is selected();

if(isname){

ArrayList SSS = sm . find byname(QS);

if(sss.isEmpty()){

Joptionpane。显示消息对话框(这个,“系统找不到名为' "+qs+" '的学生信息”);

}

其他

spanel . showall students(SSS);

}

否则{

学生s = sm . find byid(QS);

if(s==null){

Joptionpane。显示消息对话框(这个,“系统找不到ID为' "+qs+" ')的学生信息);

}

其他

spanel.showOneStudent

}

}

//显示所有信息

else if(e.getSource()。equals(showAllInfo)){

if(sm.isEmpty()){

Joptionpane。显示消息对话框(这个,“当前文件中没有学生信息。”);

}

其他

spanel . showall students();

}

JSP . validate();

}

//重置字段内容

私有void重置(){

name . settext(" ");

id . settext(" ");

class name . settext(" ");

addr . settext(" ");

sex . setselectedindex(0);

department . setselectedindex(0);

}

//创建一个新的student对象并保存在仓库中。

private boolean

学生s =新生();

s.setName(name.getText()。trim());

s . setsex(sex . getselectedindex()= = 0?“男”:“女”);

s.setID(id.getText()。trim());

s . set department(department . getselecteditem()。toString());

s . set class name(class name . gettext()。trim());

s.setAddr(addr.getText()。trim());

如果(!sm . is exists)){

sm.addStudent

返回true

}

返回false

}

//检查字段完整性

私有布尔校验(){

返回

name.getText()。修剪()。isEmpty()||

id.getText()。修剪()。isEmpty()||

classname.getText()。修剪()。isEmpty()||

addr.getText()。修剪()。isEmpty();

}

}

/* *学生演示面板*/

类SItemPanel扩展JPanel{

private static final long serialVersionUID = 8397146822995036515L;

私人学生模型模型;

公共站点面板(学生模型操作){

超级(空);

this . set background(color . white);

this.model = op

}

//根据数组中的学生呈现学生信息。

void showall students(ArrayList SSS){

StudentItem.odd = false

this . remove all();

this . repaint();

for(int I = 0;我& ltSSS . size();i++){

StudentItem si = new StudentItem((Student)SSS . get(I));

si.setLocation(1,I * si . getheight()+I);

si.setSize(getWidth()、si . getheight());

this . add(si);

si . repaint();

}

this.setPreferredSize(新维度(1,SSS . size()* 21));

}

void showAllStudents() {

showall students(model . getall students());

}

void showOneStudent(学生){

ArrayList a = new ArrayList();

a .添加;

showAllStudents(一);

}

}

//学生数据处理类

班级学生模型{

私有数组列表ss;

私有文件src

学生模型(字符串文件){

this.src =新文件(File);

this . ss = new ArrayList();

this . loadstudentinfo();

}

public boolean isEmpty() {

返回ss . isempty();

}

//加入学生

public void addStudent(学生){

this.ss.add(0,s);

this . save();

}

//返回所有学生的集合。

public ArrayList getall students(){ return ss;}

//该学生是否已经存在?

public boolean isExists(学生){

返回ss . index of & gt;-1;

}

//按姓名查找学生,姓名可以重复。

公共数组列表findByName(字符串名称){

ArrayList s = new ArrayList();

for(int I = 0;我& ltss . size();i++)

if((学生)ss.get(i))。getName()。等于(名称))

s . add(ss . get(I));

返回s;

}

//按ID找学生,不会有重复ID。

公共学生findByID(字符串id){

for(int I = 0;我& ltss . size();i++)

if((学生)ss.get(i))。getID()。等于(id))

return(学生)ss . get(I);

返回null

}

//保存学生信息

私有void save(){

尝试{

buffered writer bw = new buffered writer(new file writer(src));

for(int I = 0;我& ltss . size();i++){

bw.write(ss.get(i))。toString());

bw . newline();

}

bw . flush();

bw . close();

}catch(异常e){}

}

//读取学生信息

私有void loadStudentInfo() {

尝试{

buffered reader br = new buffered reader(new file reader(src));

String tmp = null

while((tmp=br.readLine())!=null){

尝试{

string[]sp = tmp . split("+");

if(sp.length==6){

this.ss.add(新生(sp));

}

}catch(异常e){}

}

br . close();

}catch(异常e){}

}

}

/* *学生演示课*/

类StudentItem扩展JPanel{

private static final long serialVersionUID =-7110719002473825550 l;

静态布尔奇数;

私有静态颜色c 1 =新颜色(0x ffffef);

私有静态颜色c2 =新颜色(0x ffefff);

私有静态final int width=500,height = 20

专用JLabel信息;

StudentItem(学生)

超级(空);

this.setSize(宽度,高度);

this.setBackground(奇数?c 1:C2);

this.info=new JLabel(

“& lthtml & gt& lt表格边框= 0 & gt& lttr >;+

“& lttd align=center width=100 >+s . getname()+" & lt;/TD >;+

“& lttd align=center width=50 >+s . getsex()+" & lt;/TD >;+

“& lttd align=center width=158 >+s . getid()+" & lt;/TD >;+

“& lttd align=center width=90 >+s.getDepartment()+"部门

“& lttd align=center width=90 >+s.getClassName()+ "Class

“& lttd align=center width=200 >+s.getAddr()+"人

“& lt/tr & gt;& lt/table >

);

this . info . setsize(getSize());

this . add(info);

奇数=!奇数;

}

}

/* *学生*/

班级学生{

私有字符串名称;//名称

私弦性;//性别

私有字符串id;//ID

私弦部;//系统

私有String _ class//类

私有字符串地址;//籍贯

学生(){ };

学生(String[] inf){

this(inf[0],inf[1],inf[2],inf[3],inf[4],INF[5]);

}

学生(字符串n,字符串s,字符串id,字符串dep,字符串c,字符串a){

this . setname(n);this . setsex(s);this . setid(id);this . set department(dep);this . set class name(c);this . set addr(a);

}

void set name(String s){ this . name = s;}

void setSex(String s){ this . sex = s;}

void setID(String s){ this . id = s;}

void set department(String d){ this . department = d;}

void setClassName(String s){this。_ class = s;}

void set addr(String addr){ this . addr = addr;}

string getName(){ return name;}

string getSex(){ return sex;}

string getID(){ return id;}

string get department(){ return this . department;}

string get class name(){ return this。_ class}

string get addr(){ return addr;}

public boolean isFullInfo(){

还名字!= null & amp& amp性!= null & amp& ampid!= null & amp& amp系!= null & amp& amp_class!= null & amp& ampaddr!= null

}

公共字符串toString(){

返回姓名+" "+性别+" "+id+" "+部门+" "+_类+" "+地址+" ";

}

public boolean equals(Object o){

返回o!= null & amp& ampo学生和学生的实例。& amp((学生)o). id . equals(id);

}

}