⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 studentinfo.java

📁 Java就业的培训教程书籍
💻 JAVA
字号:
import java.awt.*;import java.awt.event.*;import java.io.*;public class StudentInfo implements MouseListener,WindowListener{    //为界面设计声明成员变量    private Frame frObj;    private Checkbox checkObj;    private CheckboxGroup groupObj;    private Checkbox checkObj1,checkObj2;    private TextField tfObj;    private List listObj;    private Choice choiceObj;    private TextArea taObj;    private Button butObj1,butObj2;    private Label labObj1,labObj2,labObj3,labObj4,labObj5;    private Panel panelObj1,panelObj2,panelObj3,panelObj4,panelObj5,panelObj6;        public static void main(String args[]){    	StudentInfo stuObj = new StudentInfo();    	stuObj.create();    }    //在这个例子中,使用了四种常用容器    public void create()    {    	    //实例化一个标题为Student information example的Frame对象	    frObj = new Frame("Student information example");	    //生成“是否注册”复选框	    checkObj = new Checkbox("是否注册");	    //生成“姓名”文本以及对应的文本框	    labObj1 = new Label("姓名:");	    tfObj   = new TextField(20);	    //生成“性别“文本以及对应的两个单选钮	    labObj2 = new Label("性别:");	    groupObj = new CheckboxGroup();	    checkObj1 = new Checkbox("男",groupObj,true);	    checkObj2 = new Checkbox("女",groupObj,false);	    //生成”年级“文本以及对应的List对象	    labObj3 = new Label("年级:");	    listObj = new List(4,false);	    listObj.add("一年级");	    listObj.add("二年级");	    listObj.add("三年级");	    listObj.add("四年级");	    //生成”系别“文本以及对应的Choice对象	    labObj4 = new Label("系别:");	    choiceObj = new Choice();	    choiceObj.add("计算机");	    choiceObj.add("数学");	    choiceObj.add("物理");	    choiceObj.add("外语");	    //生成”显示一个学生所有信息“文本以及用于信息显示的文本区域	    labObj5 = new Label("显示一个学生所有信息:");	    taObj = new TextArea();	    //生成”显示“和”保存“按钮	    butObj1 = new Button("显示");	    butObj2 = new Button("保存");	    //实例化6个Panel对象,用于界面上各组件位置的控制	    panelObj1 = new Panel();	    panelObj2 = new Panel();	    panelObj3 = new Panel();	    panelObj4 = new Panel();	    panelObj5 = new Panel();	    panelObj6 = new Panel();	    /*为panelObj1设置布局管理器,使学生姓名和是否注册复选框位于同一行上*/	    	    panelObj1.setLayout(new FlowLayout(FlowLayout.CENTER,20,20));	    panelObj1.add(checkObj);	    panelObj1.add(labObj1);	    panelObj1.add(tfObj);	    /*为panelObj2设置布局管理器,设置”性别“文本和两个单选钮成纵向分布*/	    panelObj2.setLayout(new GridLayout(3,1));	    panelObj2.add(labObj2);	    panelObj2.add(checkObj1);	    panelObj2.add(checkObj2);	    /*panelObj3控制”年级“文本和List组件的位置关系*/	    panelObj3.setLayout(new BorderLayout());	    panelObj3.add("North",labObj3);	    panelObj3.add("Center",listObj);	    /*panelObj4控制”系别“文本和Choice组件的位置关系*/	    panelObj4.setLayout(new BorderLayout());	    panelObj4.add("North",labObj4);	    panelObj4.add("Center",choiceObj);	    /*panelObj5控制”显示一个学生所有信息“文本和TextArea组件的位置关系*/	    panelObj5.setLayout(new BorderLayout());	    panelObj5.add("North",labObj5);	    panelObj5.add("Center",taObj);	    /*panelObj6控制”显示“和”保存“按钮的位置关系*/	    panelObj6.setLayout(new FlowLayout(FlowLayout.CENTER,80,20));	    panelObj6.add(butObj1);	    panelObj6.add(butObj2);	    /*声明GridBagLayout和GridBagConstraints对象,用于控制整个界面的布局*/	    GridBagLayout gridbag = new GridBagLayout();	    GridBagConstraints c = new GridBagConstraints();	    //为Frame设置GridBagLayout布局管理器	    frObj.setLayout(gridbag);	    //下面四行语句使学生姓名和”是否注册“复选框占一行显示	    c.gridwidth = GridBagConstraints.REMAINDER;	    c.weightx = 1.0;	    gridbag.setConstraints(panelObj1,c);	    frObj.add(panelObj1);	    	    /*下面的11行语句将性别、年级和系别三部分上端对齐显示*/	    c.anchor = GridBagConstraints.NORTH;	    c.gridwidth = 1;	    c.gridheight = 4;	    c.weightx = 1.0;	    gridbag.setConstraints(panelObj2,c);	    gridbag.setConstraints(panelObj3,c);	    frObj.add(panelObj2);	    frObj.add(panelObj3);	    c.gridwidth = GridBagConstraints.REMAINDER;	    gridbag.setConstraints(panelObj4,c);	    frObj.add(panelObj4);	    	    /*下面5行语句使”显示一个学生所有信息“文本和对应的文本区域在性别、年级、系别三部分下面显示*/	    c.gridwidth = GridBagConstraints.REMAINDER;	    c.gridheight = 4;	    c.weightx = 1.0;	    gridbag.setConstraints(panelObj5,c);	    frObj.add(panelObj5);	    /*下面三行语句将”显示“按钮和”保存“按钮另起一行显示*/	    c.gridwidth = GridBagConstraints.RELATIVE;	    gridbag.setConstraints(panelObj6,c);	    frObj.add(panelObj6);	    	    //下面的两个语句设置窗口以紧凑的方式显示	    frObj.pack();	    frObj.setVisible(true);	    //为按钮和窗口注册事件注册器	    butObj1.addMouseListener(this);	    butObj2.addMouseListener(this);	    frObj.addWindowListener(this);   }	       /**方法mouseClicked用于处理鼠标单击的事件,也就是当鼠标单击事件发生后,程序就会进入该方法中执行*/    public void mouseClicked(MouseEvent e){   	//下面这个语句用于获得事件源按钮   	Button butObj = (Button)(e.getSource());    	/*声明一个String型变量tempStr,用于获得界面上不同组件的字符串内容*/   	String tempStr;   	/*声明一个StringBuffer对象totalBuf,用来进行字符串的处理操作*/   	StringBuffer totalBuf = new StringBuffer();   	String totalStr;   	Checkbox tempCheck = groupObj.getSelectedCheckbox();   	/*下面这段代码用来将有关的学生信息组合起来,用一个字符串totalStr表示*/   	tempStr = tfObj.getText();   	totalBuf.append(tempStr);   	if(checkObj.getState()==true)   		totalBuf.append("  已注册");   	else totalBuf.append("  未注册");   	tempStr = tempCheck.getLabel();   	totalBuf.append("  "+tempStr);   	tempStr = listObj.getSelectedItem();   	totalBuf.append("  "+tempStr);   	tempStr = choiceObj.getSelectedItem();   	totalBuf.append("  "+tempStr);   	totalStr = totalBuf.toString();   	/*下面是根据单击不同的按钮执行不同的操作*/   	//如果单击的是"显示"按钮,就将信息显示在文本区域中   	if(butObj.getLabel()=="显示")   	{   		taObj.setText(totalStr);   	}   	//如果单击的是"保存"按钮,就将学生信息保存在文件中   	else if(butObj.getLabel()=="保存")   	{   		//实例化InfoSave类的一个对象   		InfoSave saveObj = new InfoSave();   		/*调用InfoSave类的writeFun方法将学生信息写入文件中*/   		saveObj.writeFun(totalStr);   	}    }    //下面的语句重写MouseListener和WindowListener接口中的方法    public void mouseEntered(MouseEvent e){}    public void mouseExited(MouseEvent e){}    public void mousePressed(MouseEvent e){}    public void mouseReleased(MouseEvent e){}    //重写windowClosing方法,关闭窗口时,程序退出    public void windowClosing(WindowEvent e){    	System.exit(0);    }    public void windowOpened(WindowEvent e){}	    public void windowIconified(WindowEvent e){}    public void windowDeiconified(WindowEvent e){}    public void windowClosed(WindowEvent e){}    public void windowActivated(WindowEvent e){}    public void windowDeactivated(WindowEvent e){}	 }//类InfoSave用于将信息写入到文件中存储起来class InfoSave{	boolean boolObj;	public void writeFun(String str){	    try{	    	//创建一个File对象fileObj		File fileObj = new File("stuIfo.txt");		/*下面的语句首先通过使用getBytes()方法将参数字符串放到一个byte数组中,"8859_1"用于		指定编码方式,使得输入的汉字可以正确的输入到文件中*/		String wrStr = new String(str.getBytes(),"8859_1");		/*如果当前目录下不存在stuIfo.txt文件,就创建该文件*/		if(fileObj.exists()==false)  			boolObj = fileObj.createNewFile();		/*创建一个RandomAccessFile对象,用于进行随机访问文件的处理*/		RandomAccessFile ranFile = new RandomAccessFile(fileObj,"rw");		//下面两个语句将文件指针放在文件的结尾处		long len = ranFile.length();		ranFile.seek(len);		/*将字符串wrStr写入文件的结尾处,并且每次写入新的信息,都换行写入*/		ranFile.writeBytes("\r\n"+wrStr);		ranFile.close();	    }catch(UnsupportedEncodingException e){	    	System.out.println(e);	    }catch(IOException e){	    	System.out.println(e);	    }	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -