展开全部

看书觉得很容易,真正写代码才发现真不容易,累死。

我也是JAVA初学者(学了不到半年)32313133353236313431303231363533e58685e5aeb931333234333265,代码肯定有不合适的地方,凑合看吧,反正功能是完成了,代码如下:

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class TestClock extends JFrame{

/** Creates a new instance of TestClock */

public TestClock() {

JPanel jp=new JPanel();

final JLabel jl=new JLabel("0");

jp.add(jl);

add(jp,BorderLayout.CENTER);

JButton jbStart=new JButton("开始");

jbStart.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

JButton j =(JButton)e.getSource();

j.setEnabled(false);

dt=new DamThread(new ClockThread(jl));

dt.start();

}

});

JButton jbPause=new JButton("暂停");

jbPause.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

JButton j=(JButton)e.getSource();

String s=(String)e.getActionCommand();

if(s.equals("暂停")){

dt.setStatus(ClockStatus.PAUSE);

j.setText("继续");

}else{

dt.setStatus(ClockStatus.CONTINUE);

j.setText("暂停");

}

}

});

JButton jbZero=new JButton("清零");

jbZero.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

dt.setStatus(ClockStatus.ZERO);

}

});

JButton jbStop=new JButton("停止");

jbStop.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

dt.setStatus(ClockStatus.STOP);

}

});

JPanel jp1=new JPanel();

jp1.add(jbStart);

jp1.add(jbPause);

jp1.add(jbZero);

jp1.add(jbStop);

add(jp1,BorderLayout.SOUTH);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

pack();

setLocationRelativeTo(null);

}

public static void main(String[] args) {

TestClock tc=new TestClock();

tc.setVisible(true);

}

DamThread dt;

}

class DamThread extends Thread{

public DamThread(ClockThread c){

this.ct=c;

ct.start();

this.setDaemon(true);

this.STATUS=ClockStatus.START;

}

public void run(){

while(ct.isAlive()){

CheckStatus();

}

}

private void CheckStatus(){

switch(getStatus()){

case PAUSE:

ct.mysuspend();

break;

case ZERO:

ct.seti(0);

ct.label.setText("0");

setStatus(ClockStatus.START);

break;

case STOP:

ct.seti(1001);

break;

case CONTINUE:

ct.myresume();

break;

default:

break;

}

}

public void setStatus(ClockStatus cs){

this.STATUS=cs;

}

public ClockStatus getStatus(){

return STATUS;

}

ClockStatus STATUS;

ClockThread ct;

}

class ClockThread extends Thread{

public ClockThread(JLabel j){

this.label=j;

suspendFlag=false;

}

public void run(){

while(i<=1000){

try {

i++;

label.setText(""+i);

synchronized(this){

while(suspendFlag){

wait();

}

}

sleep(100);

} catch (InterruptedException ex) {

ex.printStackTrace();

}

}

}

public void seti(int in){

this.i=in;

}

public void mysuspend()

{

suspendFlag=true;

}

synchronized void myresume()

{

suspendFlag=false;

notify();

}

private boolean suspendFlag;

private int i=0;

JLabel label;

}

enum ClockStatus{

START,PAUSE,ZERO,STOP,CONTINUE

}

本回答由提问者推荐

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

计数器java代码_计数器的java代码相关推荐

  1. java翻译程序_有没有java代码翻译软件?

    展开全部 没有翻译软件,但是能32313133353236313431303231363533e78988e69d8331333365646333编写翻译程序. java 代码翻译实例: 1.输入一个 ...

  2. JAVA拳皇_拳皇(Java简单的小程序)代码实例|chu

    刚开始学习Java,看完老九君的视频根据他的内容敲的代码,感觉还挺有成就感的,毕竟刚学习Java. package helloasd;import java.util.*; public class ...

  3. java 中断代码_你的java代码可中断吗?(2)

    1.确保提交到线程池的任务可中断 原文:www.securecoding.cert.org,TPS02-J. Ensure thattasks submitted to a thread pool a ...

  4. 红牛农场java代码_实验题目 Java语言概述.doc

    实验题目 Java语言概述 实验一 Java语言概述 [实验目的] 1.掌握开发Java应用程序的三个步骤:编写源文件.编译源文件和运行应用程序. 2.熟悉Java应用程序的基本结构,并能联合编译应用 ...

  5. java格斗代码_一款Java网络格斗游戏源码JAVA游戏源码下载

    一款JAVA网络格斗游戏,分服务端和游戏端,通过这个源代码你能够了解到用JAVA编写网络服务端的实例,还可了解到JAVA游戏的显示类.游戏控制类.游戏界面绘制类和声音调用类等. 一款Java网络格斗游 ...

  6. 小学数学闯关游戏 java代码_简单的java程序 小学数学闯关游戏 多谢高分

    展开全部 有4个类 MainFrame,Question,QuestionPanel,ResultPanel import java.awt.BorderLayout; import java.awt ...

  7. 安卓 java内存碎片_理解Android Java垃圾回收机制

    Jvm(Java虚拟机)内存模型 从Jvm内存模型中入手对于理解GC会有很大的帮助,不过这里只需要了解一个大概,说多了反而混淆视线. Jvm(Java虚拟机)主要管理两种类型内存:堆和非堆. 堆是运行 ...

  8. java 虚拟机_浅谈Java虚拟机内存区

    1. Java 虚拟机内存区概述 我们在编写程序时,经常会遇到OOM(out of Memory)以及内存泄漏等问题.为了避免出现这些问题,我们首先必须对JVM的内存划分有个具体的认识.JVM将内存主 ...

  9. 什么样的代码是好代码_什么是好代码?

    什么样的代码是好代码 编码最佳实践 (Coding Best-Practices) In the following section, I will introduce the topic at ha ...

  10. python 代码_如何让Python代码加速运行?

    Python 是一种脚本语言,相比 C/C++ 这样的编译语言,在效率和性能方面存在一些不足.但是,有很多时候,Python 的效率并没有想象中的那么夸张.本文对一些 Python 代码加速运行的技巧 ...

最新文章

  1. MyEclipse断点调试
  2. P1091 合唱队形[单调性+DP]
  3. python删除word表格中的某一行_python docx删除word段落
  4. SQLite入门之数据类型
  5. python3打包exe运行没反应_python selenium运行,打包exe常见问题解决方法
  6. mysql set语句_mysql--乱码解决(6)
  7. Mysql 集群双主双从安装使用详细讲解
  8. C#预处理器指令 用法
  9. JVM初学之类的加载过程
  10. maven 集成 CXF
  11. yaws mysql_MySQL入门之C语言操作MySQL
  12. cmd窗口命令行上移下移_微软新版命令行界面:Windows Termina...
  13. 发现了一个好用的艺术字体转换器,也太方便了吧
  14. 第三方微信和支付宝的支付流程
  15. 学习技术的三部曲:WHAT、HOW、WHY【转】
  16. 递归实现 1,1,2,3,5,8,….第 30 个数是多少?
  17. Verilog 实现千兆网UDP协议 基于88E1111--数据接收
  18. 利用递推公式的特征方程求解通项公式
  19. 常见的传输介质及其特性
  20. PowerDesigner设计MySQL表结构转SQLServer问题

热门文章

  1. js获取浏览器的高度
  2. 海康摄像头rtsp流格式
  3. 机器人巡线算法优化方案
  4. linux操作系统和ucos操作系统,嵌入式操作系统ucos与linux比较
  5. uCOSIII 实时操作系统(一) - 简介
  6. 玩转硬件|6种修复U盘损坏的方法教程介绍,快去试试吧
  7. 基础的java数据类型长度
  8. mysql 命令行关闭fuw_网络管理 - eSight V300R009C00 维护指南 12 - 华为
  9. 华为eSight网络监控平台安装
  10. 一文了解地理数据和三维地理信息系统