📄 studentinformetion.java
字号:
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import java.applet.Applet;
import java.util.*;
import java.io.*;
public class studentinformetion
{
public static void main(String arg[])
{
sdtframe si=new sdtframe();
}
}
class sdtframe extends Frame implements TextListener,ActionListener,ItemListener
{
student sdt1,sdt2;
Label prompt=new Label("显示学生信息");
TextField no=new TextField(9);
TextField name=new TextField("姓名");
TextField age=new TextField("年龄");
Checkbox ismoniter=new Checkbox("班长");
CheckboxGroup sex=new CheckboxGroup();
Checkbox malesex=new Checkbox("男",true,sex);
Checkbox femalesex=new Checkbox("女",false,sex);
List year=new List(3,false);
Choice month=new Choice();
Choice date1=new Choice();
Choice date2=new Choice();
TextArea result=new TextArea("没有信息",5,30);
Button reset=new Button("读出");
Button enter=new Button("输入");
FileDialog fd;//属性列表
sdtframe()
{
super("输入或显示学生信息");
this.addWindowListener(new WinAdpt());
this.setSize(400,250);
show();
GridBagLayout gbLayout=new GridBagLayout();
GridBagConstraints gbc=new GridBagConstraints();
setLayout(gbLayout);
gbc.gridx=1;gbc.gridy=1;
gbc.gridwidth=GridBagConstraints.REMAINDER;gbc.gridheight=1;
gbc.fill=GridBagConstraints.HORIZONTAL;
gbc.anchor=GridBagConstraints.SOUTHEAST;
gbc.weightx=1;gbc.weighty=0;
gbc.insets=new Insets(2,5,1,5);
gbLayout.setConstraints(prompt, gbc);
add(prompt);
gbc.gridx=1;gbc.gridy=2;
gbc.gridwidth=1;gbc.gridheight=1;
gbc.anchor=GridBagConstraints.SOUTHEAST;
gbc.weightx=1;gbc.weighty=0;
gbc.insets=new Insets(2,5,2,5);
gbLayout.setConstraints(no, gbc);
no.setEditable(false);
add(no);
gbc.gridx=2;gbc.gridy=2;
gbc.gridwidth=1;gbc.gridheight=1;
gbc.fill=GridBagConstraints.HORIZONTAL;
gbc.anchor=GridBagConstraints.SOUTHEAST;
gbc.weightx=1;gbc.weighty=0;
gbc.insets=new Insets(2,5,2,5);
gbLayout.setConstraints(name, gbc);
name.addActionListener(this);
add(name);
gbc.gridx=3;gbc.gridy=2;
gbc.gridwidth=1;gbc.gridheight=1;
gbc.anchor=GridBagConstraints.SOUTHEAST;
gbc.weightx=1;gbc.weighty=0;
gbc.insets=new Insets(2,5,2,5);
gbLayout.setConstraints(age, gbc);
age.addActionListener(this);
add(age);
gbc.gridx=4;gbc.gridy=2;
gbc.gridwidth=1;gbc.gridheight=1;
gbc.anchor=GridBagConstraints.SOUTHEAST;
gbc.weightx=0;gbc.weighty=0;
gbc.insets=new Insets(2,5,2,5);
gbLayout.setConstraints(ismoniter, gbc);
ismoniter.addItemListener(this);
add(ismoniter);
gbc.gridx=1;gbc.gridy=3;
gbc.gridwidth=1;gbc.gridheight=1;
gbc.fill=GridBagConstraints.NONE;
gbc.anchor=GridBagConstraints.CENTER;
gbc.weightx=0;gbc.weighty=0;
gbc.insets=new Insets(5,5,2,5);
gbLayout.setConstraints(malesex, gbc);
malesex.addItemListener(this);
add(malesex);
gbc.gridx=1;gbc.gridy=4;
gbc.gridwidth=1;gbc.gridheight=1;
gbc.fill=GridBagConstraints.NONE;
gbc.anchor=GridBagConstraints.CENTER;
gbc.weightx=0;gbc.weighty=0;
gbc.insets=new Insets(2,5,5,5);
gbLayout.setConstraints(femalesex, gbc);
femalesex.addItemListener(this);
add(femalesex);
gbc.gridx=2;gbc.gridy=3;
gbc.gridwidth=1;gbc.gridheight=2;
gbc.fill=GridBagConstraints.HORIZONTAL;
gbc.anchor=GridBagConstraints.CENTER;
gbc.weightx=1;gbc.weighty=0;
gbc.insets=new Insets(5,5,5,5);
gbLayout.setConstraints(year, gbc);
year.add("2001");year.add("2002");year.add("2003");year.add("2004");
year.addActionListener(this);
year.addItemListener(this);
add(year);
gbc.gridx=3;gbc.gridy=3;
gbc.gridwidth=2;gbc.gridheight=1;
gbc.fill=GridBagConstraints.HORIZONTAL;
gbc.anchor=GridBagConstraints.CENTER;
gbc.weightx=1;gbc.weighty=0;
gbc.insets=new Insets(5,5,2,5);
gbLayout.setConstraints(year, gbc);
month.add("一月");month.add("二月");month.add("三月");
month.add("四月");month.add("五月");month.add("六月");
month.add("七月");month.add("八月");month.add("九月");
month.add("十月");month.add("十一月");month.add("十二月");
month.addItemListener(this);
add(month);
gbc.gridx=3;gbc.gridy=4;
gbc.gridwidth=1;gbc.gridheight=1;
gbc.fill=GridBagConstraints.HORIZONTAL;
gbc.anchor=GridBagConstraints.SOUTHEAST;
gbc.weightx=1;gbc.weighty=0;
gbc.insets=new Insets(1,5,5,2);
gbLayout.setConstraints(date1, gbc);
date1.add("0");date1.add("1");date1.add("2");date1.add("3");
date1.addItemListener(this);
add(date1);
gbc.gridx=4;gbc.gridy=4;
gbc.gridwidth=1;gbc.gridheight=1;
gbc.fill=GridBagConstraints.HORIZONTAL;
gbc.anchor=GridBagConstraints.SOUTHEAST;
gbc.weightx=1;gbc.weighty=0;
gbc.insets=new Insets(1,2,5,5);
gbLayout.setConstraints(date2, gbc);
date2.add("0");date2.add("1");date2.add("2");date2.add("3");
date2.add("4");
date2.add("5");date2.add("6");date2.add("7");date2.add("8");
date2.add("9");
date2.addItemListener(this);
add(date2);
gbc.gridx=1;gbc.gridy=5;
gbc.gridwidth=4;gbc.gridheight=1;
gbc.fill=GridBagConstraints.BOTH;
gbc.anchor=GridBagConstraints.CENTER;
gbc.weightx=1;gbc.weighty=1;
gbc.insets=new Insets(2,5,5,5);
gbLayout.setConstraints(result, gbc);
add(result);
gbc.gridx=2;gbc.gridy=6;
gbc.gridwidth=1;gbc.gridheight=1;
gbc.fill=GridBagConstraints.NONE;
gbc.anchor=GridBagConstraints.CENTER;
gbc.weightx=0;gbc.weighty=0;
gbc.insets=new Insets(5,5,5,5);
gbLayout.setConstraints(reset, gbc);
add(reset);
gbc.gridx=3;gbc.gridy=6;
gbc.gridwidth=1;gbc.gridheight=1;
gbc.fill=GridBagConstraints.NONE;
gbc.anchor=GridBagConstraints.CENTER;
gbc.weightx=0;gbc.weighty=0;
gbc.insets=new Insets(5,5,5,5);
gbLayout.setConstraints(enter, gbc);
enter.addActionListener(this);
add(enter);
}//构造函数
public void textValueChanged(TextEvent e)
{
if(e.getSource()==name)
result.setText("响应文本改变事件,名字为:"+((TextField)e.getSource()).getText());
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()=="读出")
{
fd=new FileDialog(this,"打开文件",FileDialog.LOAD);
fd.setDirectory("e://temp");
fd.show();
String fpath=fd.getDirectory()+fd.getFile();
sdt2=student.readsdf(fpath);
no.setText(Integer.toString(sdt2.sno));
name.setText(sdt2.sname);
if(sdt2.sismoniter)
ismoniter.setState(true);
else ismoniter.setState(false);
if(sdt2.sgender=='m')
malesex.setState(true);
else femalesex.setState(true);
age.setText(Double.toString(sdt2.sage));
year.select(sdt2.year);
month.select(sdt2.month);
date1.select(sdt2.date%10);
date2.select(sdt2.date%10);
}
else if(e.getSource()=="输入")
{ String n=name.getText();
char ch;
boolean mon=ismoniter.getState();
int y,m,d;
int s=Integer.parseInt(no.getText());
if(malesex.getState())
ch='m';
else ch='f';
y=year.getSelectedIndex();
m=month.getSelectedIndex();
d=date1.getSelectedIndex()*10+date2.getSelectedIndex();
sdt1=new student(n,s,ch,mon,new Date(y,m,d));
no.setText(Integer.toString(sdt1.getsno()));
result.setText(sdt1.toString());
}
else
{
result.setText(e.getActionCommand());
}
}
public void itemStateChanged(ItemEvent e)
{
ItemSelectable is=e.getItemSelectable();
if(is==ismoniter)
{
result.setText("改变了复选框的状态:");
if(e.getStateChange()==ItemEvent.SELECTED)
result.appendText("选中");
else if(e.getStateChange()==ItemEvent.DESELECTED)
result.appendText("未选中");
}
else if(is==malesex)
result.setText("选中"+malesex.getLabel());
else if(is==femalesex)
result.setText("选中"+femalesex.getLabel());
else if(is==year)
result.setText("选中第"+((List)is).getSelectedIndex()+"个年份");
else if(is==month)
result.setText("选中第"+((Choice)is).getSelectedIndex()+"个月份");
else if(is==date1)
result.setText("选中第"+((Choice)is).getSelectedIndex()+"个数天数十位");
else if(is==date2)
result.setText("选中第"+((Choice)is).getSelectedIndex()+"个数天数个位");
}
}
class student
{
int year,month,date;
int sno;
String sname;
boolean sismoniter;
char sgender;
static int snextno;
static final double totalpeoples=30;
Date sbirthday;
int sage;
student(){}
student(String name,int age,char sex,boolean moniter,Date birthday)
{
getnextsno();
sno=sno++;
setnextsno();
sname=new String(name);
sismoniter=moniter;
sgender=sex;
sbirthday=new Date(birthday.getTime());
}
int getsno()
{
return sno;
}
int getnextsno()
{
try
{
File sdfdata=new File("e:\\sdfdata.dat");
if(!sdfdata.exists()&&sdfdata.isFile())
snextno=020320101;
else
{
DataInputStream din=new DataInputStream(new FileInputStream(sdfdata));
snextno=din.readInt();
din.close();
}
}catch(Exception e){}
return snextno;
}
void setnextsno()
{
try
{
File classdata=new File("e:\\sdfdata.dat");
DataOutputStream dout=new DataOutputStream(new FileOutputStream(classdata));
dout.writeInt(snextno);
dout.close();
}catch(Exception e){}
}
void writesdt(String path)
{
try
{
File sdtfile=new File("e:sdtclassdata.dat");
DataOutputStream dout=new DataOutputStream(new FileOutputStream(sdtfile));
dout.writeInt(sno);
dout.writeBoolean(sismoniter);
dout.writeInt(sgender);
dout.writeInt(sage);
dout.writeInt(sbirthday.getYear());
dout.writeInt(sbirthday.getMonth());
dout.writeInt(sbirthday.getDate());
dout.writeUTF(sname);
dout.close();
}catch(Exception e){}
}
static student readsdf(String path)
{
student sdf=new student();
try
{
File sdffile=new File(path);
DataInputStream din=new DataInputStream(new FileInputStream(sdffile));
sdf.sno=din.readInt();
sdf.sismoniter=din.readBoolean();
sdf.sage=din.readInt();
sdf.year=din.readInt();
sdf.month=din.readInt();
sdf.date=din.readInt();
sdf.sname=new String(din.readUTF());
din.close();
}catch(Exception e){}
return sdf;
}
public String toString()
{
String s;
s="学号:"+sno+
";姓名"+sname;
if(sismoniter)
s=s+"是班长";
if(sgender=='m')
s=s+";\n 性别:男";
else s=s+";\n 性别:女";
s=s+"\n 年龄:"+(2004-sbirthday.getYear());
if(sbirthday!=null)
s=s+";\n 出生日期:"+(sbirthday.getYear())+"/"+(sbirthday.getMonth()+1)+"/"+sbirthday.getDate();
return s;
}
}
class WinAdpt extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
((Frame)e.getWindow()).dispose();
System.exit(0);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -