实验十四 线程设计
2020-12-13 04:30
标签:事件 etl parse extend textfield jbutton enter eth oid 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() ‘9‘){ ke.setKeyChar(‘\0‘); } }// 点击按钮时的事件处理 public void btnEnter_ActionPerformed(ActionEvent ae){// 获得用户输入的倒计时时间String strTime = this.txtInput.getText(); if(strTime.equals("")){// 检测用户是否输入 this.lblTime.setText("您尚未输入,请输入!");} else{Integer 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.实验心得 本次实验对我来说难度较大,由于基础的一些知识没有熟练掌握,导致出现的问题较多,通过课本和一些搜索的知识解决了部分问题,但是大多难以理解。希望同学和老师能给予帮助。 实验十四 线程设计 标签:事件 etl parse extend textfield jbutton enter eth oid 原文地址:https://www.cnblogs.com/wzl55/p/11111334.html
上一篇:Java中注解学习系列教程-1
下一篇:面试知识点二:Java集合