实验十四 线程设计

Posted wzl55

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实验十四 线程设计相关的知识,希望对你有一定的参考价值。

1.源程序:

package shiyan14;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.KeyEvent;

import java.awt.event.KeyListener;

import java.util.Timer;

import java.util.TimerTask;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JTextField;

public class ShiYan14 extends JFrame/*** */

private static final long serialVersionUID = 1L;// 定义组件

private JLabel lblTime;

private JTextField txtInput;

private JButton btnEnter;// 构造方法

public ShiYan14()// 设置窗体的相关属性

super("ShiYan14");

this.setSize(300,200);

this.setLayout(null);

this.setLocation(100,50);// 创建组件

this.lblTime = new JLabel("请输入倒计时时间");

this.lblTime.setBounds(30,20,200,30);

this.txtInput = new JTextField();

this.txtInput.setBounds(30,70,100,30);

this.btnEnter = new JButton("确定");

this.btnEnter.setBounds(150,70,70,30);// 给JTextField注册监听

this.txtInput.addKeyListener(new KeyListener()

public void keyPressed(KeyEvent ke)

public void keyReleased(KeyEvent )

 public void keyTyped(KeyEvent ke) //

tInput_KeyTyped(ke);

);// 给JButton注册监听

this.btnEnter.addActionListener(new ActionListener()

public void actionPerformed(ActionEvent ae)

btnEnter_ActionPerformed(ae););// 将各组件添加到窗体上

add(lblTime);

add(txtInput);

add(btnEnter);// 显示窗体

this.setVisible(true);// 输入时的事件处理,控制用户只能输入数字

public void txtInput_KeyTyped(KeyEvent ke)

if(ke.getKeyChar() < ‘0‘ || ke.getKeyChar() > ‘9‘)

ke.setKeyChar(‘\0‘);

// 点击按钮时的事件处理

public void btnEnter_ActionPerformed(ActionEvent ae)// 获得用户输入的倒计时时间String strTime = this.txtInput.getText();

if(strTime.equals(""))// 检测用户是否输入

this.lblTime.setText("您尚未输入,请输入!");

elseInteger time = Integer.parseInt(strTime);// 创建线程

TimeThread tt = new TimeThread(this.lblTime,time);

tt.start();// 创建

TimerTimer timer = new Timer();

timer.schedule(new TimerTask()// 启动其他程序

public void run() System.out.print("ok");

, time * 1000);

// 启动窗体

public static void main(String[] args)

new ShiYan14();

// 时间线程类

class TimeThread extends

 private JLabel lblTime;

private int time;// 构造方法传入,显示事件的JLabel和倒计时的时间。

public TimeThread(JLabel lblTime, int time)

this.lblTime = lblTime;this.time = time;

// run方法

public void run()

while(time > 0)// 显示所剩时间

this.lblTime.setText("所剩时间:" + time+"s");// 所剩时间减少

time--;

try Thread.sleep(1000);

catch (InterruptedException e)

e.printStackTrace();

2.实验心得

           本次实验对我来说难度较大,由于基础的一些知识没有熟练掌握,导致出现的问题较多,通过课本和一些搜索的知识解决了部分问题,但是大多难以理解。希望同学和老师能给予帮助。

以上是关于实验十四 线程设计的主要内容,如果未能解决你的问题,请参考以下文章

实验十四:线程设计

实验十四 线程设计

实验四《Android程序设计》

# 20192311 实验五《 数据结构与面向对象程序设计》 实验报告

实验五

2017-2018-2 20165202 实验四《Android程序设计》实验报告