XX学院java实验报告
三、实验要求
1、根据题目要求完成各程序。 2、写好上机报告。
实验十:图形用户界面综合设计
一、 实验目的:
1、 巩固图形用户界面设计的方法 2、 掌握事件处理的设计方法 二、 实验内容:
案例 学生信息注册界面设计解析
多数学校的学生档案信息都由计算机进行管理,在编写的档案管理应用程序中,有档案信息录入模块,该模块的功能是在图形化的界面下,用户把信息输入到计算机中。录入界面的大致样式及组件名称如图。
26
XX学院java实验报告
框架标签文本行面板单选钮复选框选择框按钮文本区图5-1 信息录入界面
设计上述程序界面并实现相应的功能,程序框架如下,补全代码:
import java.awt.*; import java.awt.event.*;
public class InputData implements ActionListener {
Frame f; //声明框架对象 Label l1,l2,l3,l4; //声明标签对象 TextField t; //声明文本行对象 Checkbox r1,r2; //声明单选钮对象 CheckboxGroup g; //声明组对象 Checkbox c1,c2,c3;
Choice ch; //声明选择框对象 Button b; //声明按钮对象 TextArea ta; //声明文本区对象 Panel p1,p2,p3,p4,p5; //声明面板对象 int i=0;
public InputData() {//对象实例化;
f=new Frame(\信息录入\);
f.setBounds(200,200,500,500); ch = new Choice();
l1 = new Label(\姓名:\);l2 = new Label(\性别:\);l3 = new Label(\爱好:\);l4 = new
Label(\籍贯:\); t = new TextField();
t.setSize(200, 10);g = new CheckboxGroup();
r1 = new Checkbox(\男\,g,false);r2 = new Checkbox(\女\,g,true);
c1 = new Checkbox(\体育\);c2 = new Checkbox(\音乐\);c3 = new Checkbox(\美术\); b = new Button(\确定\);
b.addActionListener(this); ta = new TextArea();
27
XX学院java实验报告
p2 = new Panel();p3 = new Panel();p4 = new Panel();p5 = new Panel();
ch.add(\济南\); //添加选择项 ch.add(\潍坊\); ch.add(\济宁\);
Panel p = new Panel();
p.setLayout(new GridLayout(5,1)); p1=new Panel();
p1.setLayout(new FlowLayout(FlowLayout.LEFT)); //设定面板布局样式 p2.setLayout(new FlowLayout(FlowLayout.LEFT)); p3.setLayout(new FlowLayout(FlowLayout.LEFT)); p4.setLayout(new FlowLayout(FlowLayout.LEFT)); p.add(p1);
p.add(p2);p.add(p3);p.add(p4);p.add(p5);
p1.add(l1); //面板中加入组件 p1.add(t);
p2.add(l2);p2.add(r1);p2.add(r2);
p3.add(l3);p3.add(c1);p3.add(c2);p3.add(c3); p4.add(l4);p4.add(ch);
p5.setLayout(new FlowLayout(FlowLayout.CENTER)); p5.add(b);
f.setLayout(new GridLayout(2,1)); //设定框架布局样式 f.add(p);
28
XX学院java实验报告
}
public void actionPerformed(ActionEvent e) //事件处理接口实现 { //把输入内容显示到文本区中; i++;
String n = \第\+i+\名同学的输入信息为:\\n\ ;
n+= \姓名:\+t.getText()+\;
String xingbie = \+g.getSelectedCheckbox().getLabel();
String aihao = \+(c1.getSelectedObjects()==null?\:c1.getLabel())+
\+(c2.getSelectedObjects()==null?\:c2.getLabel())+
\+(c3.getSelectedObjects()==null?\:c3.getLabel());
f.addWindowListener(new WindowAdapter(){ //注册事件监听器,匿名类实现接口 public void windowClosing(WindowEvent e){
}
f.setVisible(false); System.exit(0);
f.add(ta);
});
f.setVisible(true);
n+= \性别:\+xingbie+\+\爱好:\+aihao;
n+= \籍贯:\+(ch.getSelectedIndex()==0?\济南\:(ch.getSelectedIndex()==1?\潍坊\:\
济宁\));
ta.append(n+\); }
}
public static void main(String args[]) { }
new InputData();
三、 实验要求:
1、 事先预习,写出预习报告 2、 上机验证后写出实验报告
实验十一 多线程技术
一、实验目的
1.理解多线程编程技术的概念; 2.掌握多线程创建的方法;
3.掌握多线程在实际应用开发程序中的使用。 二、实验内容
案例 动画显示解析
29
XX学院java实验报告
动画显示是多媒体技术的一个主要方面,如今动画制作也是日常工作中经常要用到的,实现动画技术的方法也非常多,利用多线程的技术方法可以解决动画显示的一些实现问题,
动画原理:
在Applet中加载若干幅表现不同状态的图片,利用线程按顺序切换图片实现动画效果。下载图片时,使用了图像跟踪技术。
尝试实现功能,补全代码。 1、程序代码: import java.awt.*;
import java.applet.Applet;
public class Animation extends Applet implements Runnable { Image images[]; //图像数组 MediaTracker tracker; //图像跟踪对象变量 int index=0; //图像索引 Thread animator; //线程变量 Image offScrImage; //用于图像缓冲的图像对象变量 Graphics offScrGC; //图像对象变量 int total=5; //图片总数 public void init()
{ tracker=new MediaTracker(this); //建立图像跟踪对象 images=new Image[total]; //建立数组 try{ offScrImage=createImage(getWidth(),getHeight()); //建立用于缓冲的对象 offScrGC=offScrImage.getGraphics(); //取出图像对象 offScrGC.setColor(getBackground()); offScrGC.fillRect(0,0,getWidth(),getHeight()); //用背景色画矩形 }catch(Exception e){e.printStackTrace();} for(int i=0;i { } try{ tracker.waitForAll(); //等待全部图像载入完 }catch(InterruptedException e){} } public void start() //在缓冲区准备好第一幅图并建立线程、启动线程 { } public void run() { 30