版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 本科实验报告课程名称: Java程序设计 实验项目: 实验三 多线程和多媒体编程 实验地点: ZSA401 专业班级: 学号: 学生姓名: 指导教师: 实验名称 实验三 多线程和多媒体编程实验目的和要求1. 掌握线程的概念、线程的生命周期;掌握采用扩展Thread类和实现Runnable接口的多线程编程方法;2. 掌握Java中声音播放、图形绘制和显示图像的程序设计方法;实验内容1. 完成教材实验8中实验内容(1)(2)。2. 完成教材实验8中实验内容(3)。3. 编程绘制直线、各种矩形、各种椭圆及多边形。4. 编程显示各种字体、字型、字号和不同颜色的文字。5. 编程显示图形文件,并实现动画
2、效果。主要仪器设备台式或笔记本计算机实验记录(写出实验内容中2,3, 5的程序代码和运行结果)(可分栏或加页)实验一:package test8;import java.util.*;public class S09_01_Thread extends Thread int pause;String name;public S09_01_Thread(int x,String n)pause=x;name=n;public void run()while(true)trySystem.out.println(name+":"+new Date(System.currentT
3、imeMillis();Thread.sleep(pause);catch(Exception e)System.out.println(e);public static void main(String args)S09_01_Thread tpl=new S09_01_Thread(1000,"fast");tpl.start();S09_01_Thread tp2=new S09_01_Thread(3000,"slow");tp2.start();实验二:package text8;import java.util.Date;import tes
4、t8.S09_01_Thread;public class S09_02_Thread implements Runnable int pause;String name;public S09_02_Thread(int x,String n)pause=x;name=n;public void run()while(true)trySystem.out.println(name+":"+new Date(System.currentTimeMillis();Thread.sleep(pause);catch(Exception e)System.out.println(e
5、);public static void main(String args)Thread tpl=new Thread(new S09_02_Thread(1000,"fast");tpl.start();Thread tp2=new Thread(new S09_02_Thread(3000,"slow");tp2.start();实验三:创建三个线程,每个线程显示它的运行时间package test8;import java.util.Calendar;import java.util.concurrent.locks.Lock;public cla
6、ss ThreeTread static Lock mylock; public static void main(String args) RunningObject1 r1 = new RunningObject1(); Thread t1 = new Thread(r1, "t1"); Thread t2 = new Thread(r1, "t2"); Thread t3 = new Thread(r1, "t3"); t1.start(); t3.start(); t2.start(); static class Runnin
7、gObject1 implements Runnable public void run() synchronized(this) String name=Thread.currentThread().getName(); System.out.println(name+"开始时间:"+Calendar.getInstance().getTimeInMillis(); for (int i = 0; i < 100000000; i+) if (i = 9999999) System.out.println(name+"结束时间:"+Calenda
8、r.getInstance().getTimeInMillis(); break; 实验四 编程绘制直线、各种矩形、各种椭圆及多边形。package test8;import java.awt.*;import java.applet.*;public class L10_03_Practice extends Applet public void paint(Graphics g)g.drawLine(6, 150, 50, 50);g.drawRect(60,30,100,30);g.draw3DRect(60, 160, 100, 30, true);g.drawRoundRect(60
9、, 200, 100, 40, 10, 10);g.drawArc(200, 20, 50, 100, 0, 135);g.drawOval(200, 150, 80, 80);g.drawString("welcome",200,250);g.setColor(Color.red);g.fillOval(200, 100, 100, 40);g.drawOval(60, 100, 70, 50);Font f=new Font("黑体",Font.ITALIC,60);g.setFont(f);g.drawString("welcome&qu
10、ot;, 30, 300);实验五 编程显示图形文件,并实现动画效果import java.applet.*;import java.awt.*;public class LoopImage extends Applet implements Runnable Image image;int count=0;int i;AudioClip sound;Thread thread;public void init()image=new Image4;MediaTracker tracker=new MediaTracker(this);for(i=0;i<4;i+)imagei=getIm
11、age(getCodeBase(),"imag"+(i+1)+".jpg");tracker.addImage(imagei, 0);tracker.checkAll(true);trysound=getAudioClip(getCodeBase(),"test.wav");catch(Exception e)public void start()thread=new Thread(this);thread.start();public void stop()thread=null;public void run()int delay
12、=1000;while(true)repaint();count+;if(count=3)count=0;trythread.sleep(delay);catch(Exception e)public void paint(Graphics g)if(imagecount!=null)g.drawImage(imagecount, 0, 0, this.getWidth(),this.getHeight(),this); sound.loop();实验六 package test8;import java.applet.*;import java.awt.*;public class L10_
13、08_Practice extends Applet implements Runnable int xpos;int ypos;int state;Thread runner;public void init()xpos=0;ypos=200;state=1;public void start()runner=new Thread(this);runner.start();public void run()switch(state)case 1:for(xpos=0;xpos<getSize().width-30;xpos+=3)repaint();tryThread.sleep(10
14、0);catch(InterruptedException e)state+;case 2:for(ypos=200;ypos<getSize().height-30;ypos+=3)repaint();tryThread.sleep(100);catch(InterruptedException e)state+;case 3:for(xpos=xpos;xpos>30;xpos-=3)repaint();tryThread.sleep(100);catch(InterruptedException e)state+;case 4:for(ypos=ypos;ypos>20
15、0;ypos-=3)repaint();tryThread.sleep(100);catch(InterruptedException e)state+;public void paint(Graphics g)g.setColor(Color.white);g.fillRect(0, 0, getSize().width, getSize().height);g.setColor(Color.red);if(state=1)g.fillOval(xpos, 200, 30, 30);if(state=2)g.fillOval(xpos, ypos, 30, 30);if(state=3)g.
16、fillOval(xpos, ypos, 30, 30);if(state=4)g.fillOval(xpos, ypos, 30, 30);遇到的问题和解决方法在编写程序时:我遇到了图片加载不到applet小程序里的情况,首先我查看了我图片存放的路径,看是否和我编写的java程序在同一目录下,然后再重新加载。在编写Thread的时候实现Runnable接口和继承Thread有区别,一个直接可以使用,另一个得先声明时Thread对象,再实现接口。心得体会在编写的同时要细心认真,布局好每一个compotent,使画面更美观 本科实验报告课程名称: Java程序设计 实验项目:实验四 网络、数据库
17、和输入/输出流编程 实验地点: ZSA401 专业班级: 软件1009 学号: 2010004634 学生姓名: 畅志华 指导教师: 关利芳 2012年 11月 11日实验名称实验四 网络、数据库和输入/输出流编程实验目的和要求1. 掌握URL的概念和编程方法,掌握Socket的概念和编程方法、2. 了解JDBC的概念和工作原理,掌握使用JDBC实现简单的数据库管理;3. 了解流的概念和分类,掌握两种基本输入/输出流类的使用;4. 掌握Java文件类的使用。实验内容1. 改写教材例11.10的程序,使用图形界面实现多用户聊天程序。2. 完成教材实验11中的实验内容(1)(4)。3. 利用Jav
18、a文件类File的方法,获取磁盘文件的文件名、长度、大小等特性。4. 编写程序,利用Java的字符流文件输入/输出类实现将源文件复制到另一文件。台式或笔记本计算机实验记录(写出实验内容中1,2,4的程序代码和运行结果)(可分栏或加页)实验一:改写教材例11.10的程序,使用图形界面实现多用户聊天程序。package Socket;import java.io.*;import .*;import java.awt.*;import java.awt.event.*;public class Face extends Frame private static final long se=1L;B
19、utton clientBtn,serverBtn;TextArea ta;TextField tfaddress,tfport,tftype;Label lbl1,lbl2,lbl3;int port;Server server;boolean iamserver;static Face frm;public Face()clientBtn=new Button("客户端");serverBtn=new Button("服务器");ta=new TextArea("",10,50,TextArea.SCROLLBARS_BOTH);
20、lbl1=new Label("IP地址:");tfaddress=new TextField("127.0.0.1",10);lbl2=new Label("端口");tfport=new TextField("8888");lbl3=new Label("发送内容");tftype=new TextField(40);tftype.addKeyListener(new TFListener();ta.setEditable(false);setLayout(new FlowLayout();
21、add(lbl1);add(tfaddress);add(lbl2);add(tfport);add(clientBtn);add(serverBtn);add(ta);add(lbl3);add(tftype);setLocation(350,250);setSize(400,300);this.setVisible(true);clientBtn.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)port=Integer.parseInt(tfport.getText();tfad
22、dress.setEnabled(false);tfport.setEnabled(false);serverBtn.setEnabled(false);clientBtn.setEnabled(false););serverBtn.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)port=Integer.parseInt(tfport.getText();iamserver=true;tfaddress.setText("成为服务器");tfaddress.se
23、tEnabled(false);serverBtn.setEnabled(false);clientBtn.setEnabled(false););addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););public static void main(String args)frm=new Face();private class TFListener implements KeyListenerpublic void keyPressed(KeyEvent e)
24、if(e.getKeyCode()=KeyEvent.VK_ENTER)ta.append(">"+tftype.getText()+"n");tftype.setText("");Overridepublic void keyTyped(KeyEvent e) / TODO Auto-generated method stubOverridepublic void keyReleased(KeyEvent e) / TODO Auto-generated method stubpackage Socket;import jav
25、a.io.*;import .*;import java.awt.*;import java.awt.event.*;public class Face extends Frame private static final long se=1L;Button clientBtn,serverBtn;TextArea ta;TextField tfaddress,tfport,tftype;Label lbl1,lbl2,lbl3;int port;Server server;boolean iamserver;static Face frm;public Face()clientBtn=new
26、 Button("客户端");serverBtn=new Button("服务器");ta=new TextArea("",10,50,TextArea.SCROLLBARS_BOTH);lbl1=new Label("IP地址:");tfaddress=new TextField("127.0.0.1",10);lbl2=new Label("端口");tfport=new TextField("8888");lbl3=new Label("发
27、送内容");tftype=new TextField(40);tftype.addKeyListener(new TFListener();ta.setEditable(false);setLayout(new FlowLayout();add(lbl1);add(tfaddress);add(lbl2);add(tfport);add(clientBtn);add(serverBtn);add(ta);add(lbl3);add(tftype);setLocation(350,250);setSize(400,300);this.setVisible(true);clientBtn
28、.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)port=Integer.parseInt(tfport.getText();tfaddress.setEnabled(false);tfport.setEnabled(false);serverBtn.setEnabled(false);clientBtn.setEnabled(false););serverBtn.addActionListener(new ActionListener()public void actionPer
29、formed(ActionEvent e)port=Integer.parseInt(tfport.getText();iamserver=true;tfaddress.setText("成为服务器");tfaddress.setEnabled(false);serverBtn.setEnabled(false);clientBtn.setEnabled(false););addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););public s
30、tatic void main(String args)frm=new Face();private class TFListener implements KeyListenerpublic void keyPressed(KeyEvent e)if(e.getKeyCode()=KeyEvent.VK_ENTER)ta.append(">"+tftype.getText()+"n");tftype.setText("");Overridepublic void keyTyped(KeyEvent e) / TODO Auto
31、-generated method stubOverridepublic void keyReleased(KeyEvent e) / TODO Auto-generated method stubpackage Socket;import java.awt.*;import java.io.*;import .*;public class LServer extends Thread ServerSocket skt;Socket Client=new Socket10;int i=0;TextArea in;int port,k=0,l=0;PrintStream theOutputStr
32、eam;Face chat;public LServer(int port,Face chat)trythis.port=port;skt=new ServerSocket(port);this.chat=chat;catch(IOException e)chat.ta.append(e.toString();public void run()chat.ta.append("等待连接。");while(true)tryClientk=skt.accept();if(i<2)ServerThread server=new ServerThread10;serverk=n
33、ew ServerThread(Client10,this.chat,i);l=server.length;serverk.start();chat.ta.append("客户端"+Clientk.getInetAddress()+"已连接");theOutputStream=new PrintStream(serverk.getClient().getOutputStream();i=serverk.getI();k+;elsecatch(SocketException e)catch(IOException e)chat.ta.append(e.to
34、String();public void dataout(String data)theOutputStream.println(data);class ServerThread extends ThreadServerSocket skt;Socket Client;TextArea in;int port,i;BufferedReader theInputStream;PrintStream theOutputStream;String readin;Face chat;public ServerThread(Socket s,Face chat,int i)this.i=+i;Clien
35、t=s;this.chat=chat;public int getI()return this.i;public Socket getClient()return this.Client;public void run()trytheInputStream=new BufferedReader(new InputStreamReader(Client.getInputStream();theOutputStream=new PrintStream(Client.getOutputStream();while(true)readin=theInputStream.readLine();chat.
36、ta.append(readin+"n");catch(SocketException e)chat.ta.append("连技中断!n");chat.clientBtn.setEnabled(true);chat.serverBtn.setEnabled(true);chat.tfaddress.setEnabled(true);chat.tfport.setEnabled(true);tryi-;skt.close();Client.close();catch(IOException err)chat.ta.append(err.toString()
37、;catch(IOException e)chat.ta.append(e.toString();public void dataout(String data)theOutputStream.println(data);实验二 数据库 student表import java.sql.*;import java.awt.*;import javax.swing.*;import java.awt.Event;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.W
38、indowAdapter;import java.awt.event.WindowEvent;public class Student public static void main(String args)new FLay();class FLay extends JFrame implements ActionListenerJTable table;JButton bt1,bt2;Object a;Connection con;Statement sql;ResultSet rs;Object columeName="学号","性别","
39、年龄","班级","姓名" FLay()a=new Object205;table=new JTable(a,columeName);setSize(500,400);bt1=new JButton("浏览表");bt2=new JButton("年龄大于18");bt1.addActionListener(ActionListener) this);bt2.addActionListener(this);Container con=getContentPane();con.setLayout(new F
40、lowLayout();con.add(bt1);con.add(bt2);Container con1=getContentPane();con1.add(new JScrollPane(table),BorderLayout.CENTER);setVisible(true);validate();addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););int i=0;public void actionPerformed(ActionEvent ev)if(e
41、v.getSource()=bt1)while(i>=0)ai0=""ai1=""ai2=""ai3=""ai4=""i-;i=0;tryClass.forName("sun.jdbc.odbc.JdbcOdbcDriver");catch(ClassNotFoundException e)trycon=DriverManager.getConnection("jdbc:odbc:vtest");sql=con.createStatement();r
42、s=sql.executeQuery("Select * From student");while(rs.next()String number=rs.getString("学号");String sex=rs.getString("性别");String age=rs.getString("年龄");String cl=rs.getString("班级");String name=rs.getString("姓名");ai0=number;ai1=sex;ai2=age;a
43、i3=cl;ai4=name;i+;con.close();repaint();catch(SQLException e)if(ev.getSource()=bt2)while(i>=0)ai0=""ai1=""ai2=""ai3=""ai4=""i-;i=0;tryClass.forName("sun.jdbc.odbc.JdbcOdbcDriver");catch(ClassNotFoundException e)trycon=DriverManager.getConnection("jdbc:odbc:vtest");sql=con.createStatement();rs=sql.executeQuery("Select * From student WHERE 年龄>18");while(rs.next()String
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 单位职工购房贷款合同范本
- 2024年哈尔滨劳动合同范本
- 2024年协议离婚中双方隐私保护协议书
- 债务重组协议书范本示例
- 标准租赁合同要点解读
- 新版供货合同格式
- 小产权房买卖合同风险防范指南
- 2024年音乐培训机构注册服务协议
- 古诗词诵读《登岳阳楼》公开课一等奖创新教学设计统编版高中语文必修下册
- 物业清洁合同新模板
- 2023年高考化学反应原理专题复习《压强平衡常数》
- 人行道透水砖施工解决方案2445
- 2023年高考浙江卷英语试题(2023年1月考试-含听力音频、听力原文和答案)
- 高一上学期 期中考试后的家长会
- GB/Z 20423-2006液压系统总成清洁度检验
- 武警医院污水处理站施工组织设计
- GB/T 14505-1993岩石和矿石化学分析方法总则及一般规定
- GB 4806.1-2016食品安全国家标准食品接触材料及制品通用安全要求
- 输出共模电感规格书
- 三违行为检查记录表
- 护理管理制度-课件
评论
0/150
提交评论