Java实验五 线程

更新时间:2023-10-29 15:10:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验五 线程

一 实验要求

1、理解进程和线程概念;

2、掌握创建、管理和控制Java线程对象的方法; 3、了解并发执行的多线程存在的各种关系

二 实验内容

1、使用线程对象或Timer定时器制作数字时钟标签组件,显示当前日期和时间,每秒刷新,将该标签添加到框架窗口。

(一): 线程对象 (1)源码:

package com.exp5;

import java.awt.*; import java.text.*; import java.util.*; import javax.swing.*;

public class Pro extends JFrame implements Runnable{

@Override

public void run() {

// TODO Auto-generated method stub while(true){

try {

SimpleDateFormat mydate = new SimpleDateFormat(\- dd

JPanel jp=null; JLabel lb=null;

Date date=new Date(); String myString;

HH:mm:ss\);

}

public Pro(){

}

lb.setText(mydate.format(Calendar.getInstance().getTime())); }

Thread.sleep(1000);

// TODO Auto-generated catch block e.printStackTrace(); } catch (Exception e) {

public static void main(String[] args){

}

Pro p=new Pro(); Thread t=new Thread(p); t.start(); } }

myString = DateFormat.getDateInstance().format(date);

lb=new JLabel(myString); JPanel jp=new JPanel(); jp.add(lb);

this.add(jp);

this.setTitle(\线程对象\); this.setSize(300,100); this.setLocation(500,200); this.setVisible(true);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setLayout(new FlowLayout());

(2) 截图

(3)1.问题

(1)at java.base/java.lang.Thread.run(Unknown Source) (2)实现接口Runable创建线程 出现错误 2.解决方法

(1)不要在线程中讲JLable 加入到 JPanel 中 (2)使用正确的方法创建

(二)Timer定时器 (1)源码

package com.exp5;

import java.awt.*; import java.text.*; import java.util.*; import java.util.Timer; import javax.swing.*;

public class Pro1 extends JFrame {

public Pro1(){ }

jlb=new JLabel(); JPanel jp=new JPanel(); jp.add(jlb);

Timer time = new Timer(); TimerTask tt=new TimerTask() { };

time.scheduleAtFixedRate(tt, 0, 1000);

this.add(jp);

this.setTitle(\); this.setSize(290,100); this.setLocation(500,200); this.setVisible(true);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setLayout(new FlowLayout());

}

@Override

public void run() {

// TODO 自动生成的方法存根

SimpleDateFormat mydate = new SimpleDateFormat(\- dd

JPanel jp=null; JLabel jlb=null;

HH:mm:ss\);

jlb.setText(mydate.format(Calendar.getInstance().getTime()));

public static void main(String[] args){ }

Pro1 p1=new Pro1(); }

(2)截图

(3)遇到的问题:不知道Timer类如何使用 解决方法:查询Java开发文档解决

三 实验内容中遇到的问题、解决方法和体会。

线程对象

1.问题

(1)at java.base/java.lang.Thread.run(Unknown Source) (2)实现接口Runable创建线程 出现错误 2.解决方法

(1)不要在线程中讲JLable 加入到 JPanel 中 (2)使用正确的方法创建 Timer定时器 遇到的问题:不知道Timer类如何使用 解决方法:查询Java帮助文档解决

体会:熟练使用Java 帮助文档可以解决很多问题

本文来源:https://www.bwwdw.com/article/v9m2.html

Top