文件名为:CreateWindow.java内容
/* 2006.06.22 By Siner E-mail:siner2005@QQ.com QQ:312999963
版权所有^_^ ,谢谢合作。
*/
import java.awt.*;
import java.awt.List; //在窗口中要定义List对象要用到此包
import javax.swing.*;
import java.awt.event.*; //定义窗口,以及按钮事件要用到此包
import java.text.*; //转换日期格式要用到此包
import java.util.*; //获取时间时要用到此包
import java.io.*;
//创建CreateWindow类
public class CreateWindow extends Frame implements ActionListener,ItemListener{
Frame StudentFrame = new Frame("学生管理系统 2006.06.15 By Siner" );
JButton ClearBtn,OpenBtn,SaveBtn,DeleBtn,AddBtn,DialogOK_btn,DialogChance_btn;
List ProFessionList,StuInforList;
Label StuState,StuDialog_Lab;
TextField StuNameTxt,StuMath,StuEnglish,StuPolitics,StuTotalNum;
Choice ClassNum,StuNum,MusicChoice;
Checkbox sex1,sex2;
CheckboxGroup StuSex;
JDialog StuOption_Dialog;
//定义CreateWindow方法(用来初始化窗口)
CreateWindow(){
StudentFrame.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
} //CreateWindow方法结束
void init(){
StudentFrame.setSize(600,500); //设置窗口大小
StudentFrame.setLocation(0,0); //设置窗口初始位置
/*按钮*/
OpenBtn = new JButton(new ImageIcon("StudentImage/btn_Load.gif" )); //载入记录
OpenBtn.addActionListener(this);
SaveBtn = new JButton(new ImageIcon("StudentImage/btn_ok.gif" )); //保存信息
SaveBtn.addActionListener(this);
DeleBtn = new JButton(new ImageIcon("StudentImage/btn_dele.GIF" )); //删除记录
DeleBtn.addActionListener(this);
AddBtn = new JButton(new ImageIcon("StudentImage/btn_Add.gif" )); //添加记录
AddBtn.addActionListener(this);
ClearBtn = new JButton(new ImageIcon("StudentImage/btn_Clear.gif" )); //清除记录
ClearBtn.addActionListener(this);
/*专业*/
ProFessionList = new List(3,false);//定义ProFessionList 3行可视,不可多选
ProFessionList.add("计算机应用技术" );
ProFessionList.add("计算机网络技术" );
ProFessionList.add(" 计算机软件 " );
ProFessionList.add("计算机通讯技术" );
ProFessionList.add("计算机系统工程" );
ProFessionList.add("计算机科学技术" );
ProFessionList.add("计算机辅助制图" );
ProFessionList.add("计算机辅助制造" );
ProFessionList.select(0);
/*班级*/
ClassNum = new Choice();
ClassNum.addItem("03-1班" );
ClassNum.addItem("03-2班" );
ClassNum.addItem("03-3班" );
ClassNum.addItem("03-4班" );
ClassNum.addItem("04-1班" );
ClassNum.addItem("04-2班" );
ClassNum.addItem("04-3班" );
/*学号*/
StuNum = new Choice();
for (int x=1;x<=50 ;x++ )
{StuNum.addItem(x+"号" );
}
/*性别*/
StuSex = new CheckboxGroup();
sex1 = new Checkbox("男",StuSex,true);
sex2 = new Checkbox("女",StuSex,false);
/*学生基本信息*/
StuNameTxt = new TextField("Siner",6);
StuMath = new TextField(2);
StuEnglish = new TextField(2);
StuPolitics = new TextField(2);
StuTotalNum = new TextField(3);
/*学生信息列表*/
StuInforList = new List(6,true);
/*背景音乐下拉菜单*/
MusicChoice = new Choice();
MusicChoice.addItem("music 1" );
MusicChoice.addItem("music 2" );
MusicChoice.addItem("music 3" );
MusicChoice.addItem("music 4" );
MusicChoice.addItem("music 5" );
MusicChoice.addItem("无音乐" );
MusicChoice.addItemListener(this);
/*状态栏*/
StuState = new Label("状态栏" );
/*提示对话框*/
//StuOption_Dialog=new JDialog(StudentFrame);
//StuOption_Dialog.setLayout(null);
//DialogOK_btn = new JButton("确定" );
//DialogChance_btn = new JButton("取消" );
//StuDialog_Lab = new Label();
//StuOption_Dialog.setSize(200,150);
//DialogOK_btn.setBounds(30,80,60,20);
//DialogChance_btn.setBounds(100,80,60,20);
//StuOption_Dialog.add(DialogOK_btn);
//StuOption_Dialog.add(DialogChance_btn);
//StuOption_Dialog.add(StuDialog_Lab);
}
public void SFsetLayout(){
StudentFrame.setLayout(new BorderLayout()); //为StudentFrame添加边界布局
Font TitleLabelFont = new Font("Dialog",Font.BOLD,20); //定义TitleLabelFont字体对象
Label TitleLabel=new Label("学生管理",Label.CENTER); //定义标签TitleLabel对象
TitleLabel.setFont(TitleLabelFont); //为标签TitleLabel设置字体
TitleLabel.setBackground(Color.red); //为标签TitleLabel设置背景色
TitleLabel.setForeground(Color.green);//为标签TitleLabel设置前景色
Date myDate; //定义myDate变量
myDate = new Date();
DateFormat myDateFormat=DateFormat.getDateInstance(DateFormat.LONG,Locale.CHINA); //设置日期格式为中国式
DateFormat myTimeFormat=DateFormat.getTimeInstance(DateFormat.LONG,Locale.CHINA); //设置时间格式
Label DateLabel = new Label(myDateFormat.format(myDate)+" "+myTimeFormat.format(myDate),Label.RIGHT);
/*定义窗口上部面板(标题标签,时间标签)*/
Panel TopPanel = new Panel(new GridLayout(2,1));
TopPanel.add(TitleLabel);
TopPanel.add(DateLabel);
StudentFrame.add("North",TopPanel);
/*添加窗口上部面板结束*/
/*定义窗口底部面板(基本按钮,状态栏)*/
Panel ButtonPanel = new Panel(); //定义ButtonPanel面板
ButtonPanel.setLayout(new GridLayout(1,5)); //定义一行五列的布局
ButtonPanel.add(OpenBtn);
ButtonPanel.add(SaveBtn);
ButtonPanel.add(DeleBtn);
ButtonPanel.add(AddBtn);
ButtonPanel.add(ClearBtn);
Panel StuStatePanel = new Panel(new GridLayout(1,1));
StuStatePanel.add(StuState);
Panel BottomPanel = new Panel(new GridLayout(2,1));
BottomPanel.add(StuStatePanel);
BottomPanel.add(ButtonPanel);
StudentFrame.add("South",BottomPanel);
/*添加窗口底部面板结束*/
/*定义窗口中间主要面板(学生成绩,学生基本信息,及其他)*/
Panel BasePanel = new Panel(new GridLayout(4,1)); //定义BasePanel面板
Panel Base3Panel = new Panel(new GridLayout(2,3)); //定义BasePanel面板
Base3Panel.add(new Label("专业:" ));
Base3Panel.add(new Label("班级编号:" ));
Base3Panel.add(new Label("学号:" ));
Base3Panel.add(ProFessionList);
Base3Panel.add(ClassNum);
Base3Panel.add(StuNum);
Panel Base4Panel = new Panel(new GridLayout(4,4)); //定义BasePanel面板
Base4Panel.add(new Label("性别:" ));
Base4Panel.add(sex1);
Base4Panel.add(sex2);
Base4Panel.add(new Label("" ));
Base4Panel.add(new Label("学生姓名:" ));
Base4Panel.add(StuNameTxt);
Base4Panel.add(new Label("数学成绩:" ));
Base4Panel.add(StuMath);
Base4Panel.add(new Label("英语成绩:" ));
Base4Panel.add(StuEnglish);
Base4Panel.add(new Label("政治成绩:" ));
Base4Panel.add(StuPolitics);
Base4Panel.add(new Label("学生信息窗口:" ));
Panel Base5Panel = new Panel(new GridLayout(1,0)); //定义BasePanel面板
Base5Panel.add(StuInforList);
Panel Base6Panel = new Panel(); //定义BasePanel面板
Base6Panel.add(new Label("背景音乐:" ));
Base6Panel.add(MusicChoice);
Base6Panel.add(new JLabel(new ImageIcon("StudentImage/SinerLogo.gif" )));
BasePanel.add(Base3Panel);
BasePanel.add(Base4Panel);
BasePanel.add(Base5Panel);
BasePanel.add(Base6Panel);
StudentFrame.add("Center",BasePanel);
/*添加窗口中间主要面板结束*/
StudentFrame.setBackground(new Color((int)(Math.random()*255),(int)(Math.random()*255),(int)(Math.random()*255)));//设置窗口背景颜色
StudentFrame.show();
}
public static void main(String args[]){
CreateWindow StudentWin= new CreateWindow(); //定义CreateWindow对象
StudentWin.init(); //对CreateWindow对象进行初始设置
StudentWin.SFsetLayout();
}//main 方法结束
/*以下是对按钮事件进行设置 2006.06.18 by Sienr*/
public void actionPerformed(ActionEvent StuButton_Event){
Exception aa = new Exception();
String storeStr="";
//如果是 添加记录 按钮
if(StuButton_Event.getSource()==AddBtn)
{ String SexString= "男",ErrorMessage="";
boolean Pass_Flag = true;
if(sex2.getState()) SexString="女";
if((StuNameTxt.getText()).equals("" )==true || (StuMath.getText()).equals("" )==true || (StuEnglish.getText()).equals("" )==true || (StuPolitics.getText()).equals("" )==true )
{ Pass_Flag=false; ErrorMessage="■学生信息输入不全!■";}
try{ int TotalFenShu,MathFenshu,EnglishFenshu,PoliticsFenshu;
MathFenshu=Integer.parseInt(StuMath.getText());
EnglishFenshu=Integer.parseInt(StuEnglish.getText());
PoliticsFenshu=Integer.parseInt(StuPolitics.getText());
TotalFenShu = MathFenshu+EnglishFenshu+PoliticsFenshu;
if(MathFenshu<0 || MathFenshu>100 || EnglishFenshu<0 || EnglishFenshu>100 || PoliticsFenshu<0 || PoliticsFenshu>100) {ErrorMessage="学生成绩超出范围0-100";Pass_Flag=false;}
storeStr ="姓名: "+StuNameTxt.getText()+" 性别: "+SexString+" 专业: "+ProFessionList.getSelectedItem()+" 班级编号: "+ClassNum.getSelectedItem()+" 学号: "+StuNum.getSelectedItem()+" 数学: "+StuMath.getText()+" 英语: "+StuEnglish.getText()+" 政治: "+StuPolitics.getText()+" 总分: "+TotalFenShu;}
catch(NumberFormatException cm){ ErrorMessage="成绩应为数据";Pass_Flag=false; }
if(Pass_Flag==true) {
StuInforList.add(storeStr);
StuState.setText("添加记录成功!" );
if(StuNum.getSelectedIndex()!=StuNum.getItemCount()-1)
StuNum.select(StuNum.getSelectedIndex()+1);
}else{
StuState.setText("添加记录失败!"+ErrorMessage);
}
}
//如果是 删除记录 按钮
if(StuButton_Event.getSource()==DeleBtn)
{ int Total_RemoveNum=0;
for(int i=0;i<=StuInforList.getItemCount();i++){
if(StuInforList.isIndexSelected(i))
{StuInforList.remove(i); Total_RemoveNum++;} }
if(Total_RemoveNum==0)
StuState.setText("请选择要删除的记录!" );
else
StuState.setText("删除记录成功!"+"删除记录条数为"+Total_RemoveNum+"条" );
}
//如果是 载入信息 按钮
if(StuButton_Event.getSource()==OpenBtn)
{ try{ FileInputStream FileIn = new FileInputStream("StuInfor.txt" );
BufferedReader FileRead = new BufferedReader(new InputStreamReader(FileIn));
StuState.setText("正在载入文件记录!请稍后... ●○2006.07.01 By Siner○●" );
int i=0;
while(true){
String xxx=FileRead.readLine();
if(xxx==null) break;
StuInforList.add(xxx); i++; }
FileRead.close();
StuState.setText("载入文件记录成功!"+"共载入记录数:"+i+"条" );}
catch(FileNotFoundException fe){StuState.setText("载入文件记录失败!" );}
catch(IOException ioe){}
}
//如果是 保存信息 按钮
if(StuButton_Event.getSource()==SaveBtn)
{ ///StuDialog_Lab.setText("OK!" );
/// StuOption_Dialog.show();
try{ FileOutputStream FileOut = new FileOutputStream("StuInfor.txt",false); //true为在文件尾添加记录,false则清除以前文件中的记录,重新定入记录
BufferedWriter FileWrite = new BufferedWriter(new OutputStreamWriter(FileOut));
for(int i=0;i<StuInforList.getItemCount();i++){
FileWrite.write(StuInforList.getItem(i));
FileWrite.newLine();}
FileWrite.close();
StuState.setText("保存记录成功!2006.06.30 By Siner" );}
catch(FileNotFoundException fe){StuState.setText("保存记录失败! 没有找到指定的文件 " );}
catch(IOException ioe){}
}
//如果是 清除记录 按钮
if(StuButton_Event.getSource()==ClearBtn)
{ StuInforList.removeAll();
StuState.setText("记录清除完毕! ★☆★☆" );}//对StuInforList列表框的内容全部清除
}
/*以下是对MusicChoice列表框触发事件进行设置 2006.06.22 by Sienr*/
public void itemStateChanged(ItemEvent MCEvent){
if(MCEvent.getSource()==MusicChoice && MusicChoice.getSelectedItem()!="无音乐" )
{ StuState.setText("『Sorry! 此功能尚未建设』" ); } //播放相应的背景音乐
}
};// CreateWindow 类结束
StuInfor.txt文件内容为:
姓名: Siner 性别: 男 专业: 计算机应用与维护 班级编号: 03-1班 学号: 2号 数学: 99 英语: 45 政治: 78 总分: 555
姓名: Siner 性别: 男 专业: 计算机应用与维护 班级编号: 03-1班 学号: 3号 数学: 99 英语: 45 政治: 78 总分: 555
姓名: Siner 性别: 男 专业: 计算机应用与维护 班级编号: 03-1班 学号: 4号 数学: 99 英语: 45 政治: 78 总分: 555
姓名: Siner 性别: 男 专业: 计算机应用与维护 班级编号: 03-1班 学号: 5号 数学: 99 英语: 45 政治: 78 总分: 555
姓名: Siner 性别: 男 专业: 计算机应用与维护 班级编号: 03-1班 学号: 6号 数学: 99 英语: 45 政治: 78 总分: 555
姓名: Siner 性别: 男 专业: 计算机应用与维护 班级编号: 03-1班 学号: 7号 数学: 99 英语: 45 政治: 78 总分: 555
姓名: Siner 性别: 男 专业: 计算机应用与维护 班级编号: 03-1班 学号: 8号 数学: 99 英语: 45 政治: 78 总分: 555
姓名: Siner 性别: 男 专业: 计算机应用与维护 班级编号: 03-1班 学号: 9号 数学: 99 英语: 45 政治: 78 总分: 555
姓名: Siner 性别: 男 专业: 计算机应用与维护 班级编号: 03-1班 学号: 10号 数学: 99 英语: 45 政治: 78 总分: 555
姓名: Siner 性别: 男 专业: 计算机应用与维护 班级编号: 03-1班 学号: 11号 数学: 99 英语: 45 政治: 78 总分: 555