内容发布更新时间 : 2024/11/16 20:55:22星期一 下面是文章的全部内容请认真阅读。
实验五 线程
一 实验要求
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 帮助文档可以解决很多问题