📄 studentinfo.java.bak
字号:
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 + -