《Java程序设计》实验报告——Java的多线程机制

浙江理工大学

Java程序设计》

 实验报告

 20 19~20 20学年第 1学期     

 

信息学院

 

计算机科学与技术183

 

申屠志刚

 

2018329621200

任课教师

任祝

13 周二 345节)

   计算机科学与技术专业

20 19 11

《Java程序设计》实 验 报 告(四)

实验名称: Java多线程机制

实验地点10-306

所使用的工具软件及环境:

JDK1.7或1.8与Eclipse

 

 

一、实验目的:

熟悉Java的JFrame,多线程机制。

二、实验内容:

内容:设计和编写一个带界面时钟程序,应用多线程实现时钟的走动。

要求:本实验旨在通过实验,培养学生将JAVA 线程的相关知识点(包括JFrame,多线程)有机结合并加以综合应用。需:

(1)建议是简单的数字时钟即可,例如。表盘式时钟相对复杂,不做强制要求。

(2)贴出代码

 

(3)贴出运行结果

 

三、要求:

(1)说明原理

JAVA Swing

多线程

(2)源代码

import java.awt.*;

import java.awt.event.*;

import java.text.SimpleDateFormat;

import java.util.Date;



import javax.swing.*;



public class ClockFrame extends JFrame{

   

    JLabel lbClock=null;//创建一个标签

    public ClockFrame(){

        lbClock=new JLabel(getDate());

        //实例化lbClock标签,其title为动态调用getDate方法

        lbClock.setFont(new Font("黑体",Font.BOLD,50));

        lbClock.setForeground(Color.red);

        //设置标签字体以及标签中字的颜色

        this.add(lbClock);

        //将标签添加到窗体中

        this.addMouseListener(new MouseAdapter(){

            public void mouseClicked(MouseEvent e){

                if(e.getClickCount()==2){

                   System.exit(0);

                }

            }

        });

        //注册监听器,监听鼠标事件,mouseAdapter中的方法都已经封装,直接实现功能即可

        this.setUndecorated(true);

        //窗体无边框

        this.pack();

        //窗口大小自适应

        this.setLocationRelativeTo(null);

        //窗体居中

        this.setVisible(true);

        //窗体可见;

       

        //创建并启动线程,使时间不断地显示在屏幕上

        new Thread(new Runnable(){

            //在创建Thread对象时直接使用一个匿名的Run那边了对象实现线程中的方法。

            public void run() {

                while(true){

                   //无限循环休眠1000ms

                   try{

                       Thread.sleep(1000);

                   }catch(InterruptedException e){

                       //扑捉发生在线程中的异常,当一个正在执行的线程被中断时就会出现这个异常,添加catch后当程序被双击停止时不会出现错误

                       e.printStackTrace();

                   }

                   lbClock.setText(getDate());

                  

                }

            }

           

        }).start();//启动Thread方法,这个Thread方法也是匿名的。

    }



    private String getDate() {

        //这个方法属于java中常见的获取当前时间并格式化输出的例子

        SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

        //确定时间的格式

        return df.format(new Date());

        //new Date取当前系统时间,使用创建的格式实例格式化返回去到的时间。

    }



    public static void main(String[] args) {

        // TODO Auto-generated method stub

        new ClockFrame();



    }



}

 

(3)结果截图

 

四、实验收获与体会:

学会JAVA Swing编程

使用WindowsBuilder工具

掌握JAVA 多线程编程技术

 

   

 

 

 

你可能感兴趣的:(#,JAVA)