《java语言程序设计》
实 验 报 告
标题:简易文本编辑器设计
班级:09网络01班 姓名: 指导教师:
时间:2010年11月25日-12月16日
一. 实验目的
1、 为了进一步巩固《java程序设计》课程中所学到的知识,熟
练掌握java各种数据类型和基本语句,充分领会OOP程序设计方法的特点;
2、 练习应用java高级语言开发工具进行程序设计和系统开发的
能力,煅练自己综合分析问题和解决问题的能力,提高自己的软件职业素质;
3、 培养独立或协作完成程序设计的能力,通过系统总体设计、代
码编写、上机调试,训练java实验操作的动手能力。
二.实验内容
1、 实验题目及任务要求:
创建个人信息调查表。综合运用所学的复选框,单选按钮组,选项框和列表框等组件制作一个个人信息调查表。数据输入结束后,如果单击“确定”按钮,系统将在控制台中显示所选信息。如果单击“取消”按钮,系统将为各组件恢复其默认值。
2、 设计原理及方法说明
(1),打开java eclipse平台文件www.新建包和文件和类。
(2)输入代码修改错误 (3)上机调试输出结果
(4)checkbox(setcheckboxGroup,Stringlabel.boolean stategetlabel()其创建一个标签为;Labe1,状态为State()的复选框,并使其复选框Group中,单选Checkbox类 setcheckboxGroup组件的控制下创建出一种特殊的选择工具,单选按钮往往以一组多个方式存在,这组按钮在某一个时刻只有一个处于选种状态
① 通过对复选框、单选钮以及列表框等的声明和定义,getText()和setText()方法的使用,调用组件requestFocusInWindow()方法等等的综合使用,进一步加强对JAVA语言的编程能力的提高。 ② 为判断文本域内容是否有效,为其注册焦点事件侦听器,然后在失去焦点方法中编写相应程序。
3、 详细设计
系统总体框图
系统菜单结构
系统主要模块、算法名称表
参数或变量说明
用到了GUI(图形界面设计),使用了java.awt的软件包。Java.awt.event的软件包(事件和监听器类),javax,swing的软件包(swing组件和试用工具)java,awt,event中在接口Actionlistener,javax.swing中的类[jframe(窗体),jpanel(面扮),jradiobutyon(单选按钮),jlabel(标签)jcheckbox(复选框),jbutton(按钮)
JTextField(文件输入框),ButtonGroup(按钮组)},窗体按组件常用方法
(setBouds,setVisble,setResizable,setDefaultCloseOperation),设置布局管理器,private JPanel jp=new JPanel();//创建面板
Private JRadioButton man=new
JRadiobutton(“男”,ture);//创建单选按钮,并设置默认选项 Private JRadioButton woman=new JRadioButton(“女”);//创建单选按钮
ButtonGrop sexBG=new ButtonGroup();//创建按钮组 JLabel sexSTR=new JLabel(“你的性别;”);//创建标签 JLabel likeSTR=new Jlabel(“你的爱好;”);//创建标签 JLabel ageSTR=new Jlabel(“你的年龄;”);//创建标签 二. 实验过程 1、 资料收集
通过书上各个章节的知识点总合起来,看书上的组建的知识点。 2、 代码设计
//Questionnaire.java
package Chapter9; import java.awt.*;
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.FocusEvent; import java.awt.event.FocusListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.JOptionPane;
public class Questionnaire extends Frame implements
ActionListener,KeyListener,FocusListener{
TextField name=new TextField(10);
Checkbox man=new Checkbox(\"男\"),woman=new Checkbox(\"女\"); CheckboxGroup sex=new CheckboxGroup();
TextField age=new TextField(\"20\年龄, Choice nativeplace=new Choice(); Checkbox like1=new Checkbox(\"读书\"); Checkbox like2=new Checkbox(\"上网\"); Checkbox like3=new Checkbox(\"体育活动\"); List website=new List(4); Button btn1=new Button(\"确认\"); Button btn2=new Button(\"取消\"); Button btn3=new Button(\"退出\");
Label l=new Label(\"个人信息调查表\");
Label l1=new Label(\"姓名\"),l2=new Label(\"性别\"); Label l3=new Label(\"年龄\"),l4=new Label(\"地址\");
Label l5=new Label(\"爱好\"),l6=new Label(\"喜欢的网站\"); public Questionnaire(String title){ super(title);
this.setSize(400,400); this.setLayout(null);
l.setBounds(150,50,100,20); l1.setBounds(50,100,40,20); name.setBounds(90,100,100,20); l2.setBounds(230,100,40,20); man.setCheckboxGroup(sex); woman.setCheckboxGroup(sex); sex.setSelectedCheckbox(man); man.setBounds(270,100,60,20); woman.setBounds(330,100,60,20);
l3.setBounds(50,150,40,20); age.setBounds(90,150,50,20); l4.setBounds(230,150,40,20); nativeplace.add(\"北京\"); nativeplace.add(\"上海\"); nativeplace.add(\"天津\"); nativeplace.add(\"重庆\"); nativeplace.add(\"广东\"); nativeplace.add(\"河南\");
nativeplace.setBounds(270,150,60,20); l5.setBounds(50,200,40,20); like1.setBounds(90,200,60,20);
like2.setBounds(150,200,60,20); like3.setBounds(210,200,100,20); website.add(\"薪 浪\"); website.add(\"搜 狐\"); website.add(\"网 易\"); website.add(\"淘 宝\"); website.add(\"赶集网\"); website.add(\"新华网\");
l6.setBounds(50,250,80,20); website.setBounds(130,250,100,60); btn1.setBounds(110,330,50,20); btn2.setBounds(180,330,50,20); btn3.setBounds(250,330,50,20); this.add(l); this.add(l1); this.add(name); this.add(l2); this.add(man); this.add(woman); this.add(l3); this.add(age);
this.add(l4);
this.add(nativeplace); this.add(l5); this.add(like1); this.add(like2); this.add(like3); this.add(l6);
this.add(website); this.add(btn1); this.add(btn2); this.add(btn3);
setLocationRelativeTo(null); btn1.addActionListener(this); btn2.addActionListener(this); btn3.addActionListener(this); age.addKeyListener(this); age.addFocusListener(this);
}
public void actionPerformed(ActionEvent e){
Object ob=e.getSource(); if(ob==btn3){ System.exit(0);
}else if(ob==btn1){
System.out.println(\"姓名; \"+name.getText()); System.out.println(\"性别; \"+sex.getSelectedCheckbox().getLabel());
System.out.println(\"年龄; \"+age.getText());
System.out.println(\"地址; \"+nativeplace.getSelectedItem()); String s1=like1.getState()?like1.getLabel()+\" \":\"\"; String s2=like2.getState()?like2.getLabel()+\" \":\"\"; String s3=like3.getState()?like3.getLabel()+\" \":\"\"; System.out.println(\"爱好; \"+s1+s2+s3);
System.out.println(\"喜欢的网站; \"+website.getSelectedItem());
}else if(ob==btn2){ name.setText(\"\");
sex.setSelectedCheckbox(man); age.setText(\"20\"); like1.setState(false); like2.setState(false); like3.setState(false);
website.deselect(website.getSelectedIndex());
}
}
public void KeyPressed(KeyEvent e){ }
public void KeyReleased(KeyEvent e){ }
public void KeyTyped(KeyEvent e){ if(((e.getKeyChar()<=0x39)&&(e.getKeyChar()>=0x30)) ||(e.getKeyChar()==127)||(e.getKeyChar()==8)){
}
e.setKeyChar((char)0);
}
public void focusGained(FocusEvent e){ }
public void focuslost(FocusEvent e){
int i=Integer.parseInt(age.getText());
if((i==0)||(i>=200)){ JOptionPane.showMessageDialog(null,\"年龄有错误, 其他值应该为
1-199! \错误提示\
age.setText(\"20\");
}
age.requestFocusInWindow();
}
public static void main(String[]args){
Questionnaire app=new Questionnaire(\"个人信息\"); app.setVisible(true); } }
主模块代码(附件1):<文件名> 子模块代码(附件2):<文件名>
3、 操作举例(包括输入数据、操作步骤和实验结果) 首先创建一个项目,名称随便取,创建一个包,名称Chapter.再创建一个名称为Questionnaire的类。输入代码,运行查看结果。
三. 实验小结
自己在实验中的体会或感受: 对所完成程序的评价或改进建议:
因篇幅问题不能全部显示,请点此查看更多更全内容