用JLabel显示时间-- JAVA初学者遇到的一个困难

问题:用一个JLabe,显示秒数,每过一秒数字自动减少1

问题看似很简单,但对初学JAVA的我来说,还真费了一点劲。

首先是如何即时,可以采用线程的方法:

try {
	Thread.sleep(1000);
} catch (InterruptedException e) {
	e.printStackTrace();
}
	timeLeft --;

Thread.sleep( n )

代表过n个毫秒之后再接着走下一步程序,也就是说n为1000时,在这停一秒再继续走接下去的步骤。相当于计时一秒。

那怎么样让JLabel显示时间呢?

其实JLabel有这样一个方法:

void setText( String )

将要显示的部分变成一个String,然后就能改变JLabel的内容

那这样子就能简单的用JLabel显示时间了:

package Pra12;

import java.awt.*;

import javax.swing.*;

public class SimpleTimer extends JFrame implements Runnable {

	int timeLeft = 10;
	JLabel jl = null;
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		SimpleTimer st = new SimpleTimer();
	}

	public SimpleTimer() {
		// TODO Auto-generated constructor stub
		jl = new JLabel();
		jl.setText( "10" );

		Thread th = new Thread( this );
		th.start();

		this.add( jl );
		this.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
		this.setSize( 200 , 100);
		this.setVisible( true );
	}

	@Override
	public void run() {
		// TODO Auto-generated method stub
		while( true ) {
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

			timeLeft --;
			if( timeLeft == -1 ) {
				timeLeft = 10;
			}
			jl.setText( timeLeft+"" );
		}
	}

}
时间: 02-05

用JLabel显示时间-- JAVA初学者遇到的一个困难的相关文章

Java初学者:第一个Java程序

上次我们简单介绍了一下Java,这次,我们来初步体验一下Java程序,我想,就算你没学过Java,你也听过著名的"Hello world"吧,对于这个向整个世界打招呼的话,我总觉得很像一个地道的宅男,呆在家里啃着方便面的时候喊出来的,因此我们改动一下下,嗯...,"Hello baby"吧. 如果你完全没学过编程,我想,你应该觉得我在说胡话.其实,我就是说,我们来写个简单的Java程序,让电脑的输出设备(俗称显示器)显示"Hello baby"这

Java初学者:第一个java程序告诉了我们什么

上次我们解释了一下命令行模式下如何编译运行java程序,这次我们来简单解释一下我们那个Hello baby的小程序,首先我们来看一下源码: public class Test,到此为止,翻译过来就是:公有的名为Test的类.这是什么意思呢?这你就先别管了,以后再说. Public static void main(String[] args),这是一个公有的,静态的,没有返回值的,名为main的,参数名为args, 参数类型是String[]的一个函数.这是什么意思呢?这你就先别管了,以后再说.

Java初学者:初学者的注意事项

目前为止我们介绍了很基础的java编程,到此为止,你应该对java有了一个模模糊糊的印象,至少知道步骤上,它是怎么运行的,并且能够照猫画虎的写出一段短小的程序,这可以算是一个阶段,我们来说一下到此阶段,你应该注意的几点: 1. 如何学习java,很多初学者急功近利,学到了基本输入输出之后就觉得java也没什么嘛,就开始跃跃欲试,马上找来一大堆的java书籍,使劲的读使劲 的学,专挑自己完全不懂的地方看,然后发现java好难啊,自己用了好几周甚至更长,居然一点儿都不懂,于是从此以后再也不碰java

文本框显示时间

package zwzw; import java.awt.Color; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.text.SimpleDateFormat; import javax.swing.*; public class vv implements ActionListener { JFrame jf;

Android中通过反射来设置显示时间

这个Toast的显示在Android中的用途还是很大的,同时我们也知道toast显示的时间是不可控的,我们只能修改他的显示样式和显示的位置,虽然他提供了一个显示时间的设置方法,但是那是没有效果的(后面会说到),他有两个静态的常量Toast.SHORT和Toast.LONG,这个在后面我会在源码中看到这个两个时间其实是2.5s和3s.那么我们如果真想控制toast的显示时间该怎么办呢?真的是无计可施了吗?天无绝人之路,而且Linux之父曾经说过:遇到问题就去看那个操蛋的源代码吧!!下面就从源代码开

一个牛人给java初学者的建议

给初学者之一:浅谈java及应用学java 不知不觉也已经三年了 从不知java为何物到现在一个小小的j2ee项目经理虽说不上此道高手,大概也算有点斤两了吧每次上网,泡bbs逛论坛,没少去java相关的版面总体感觉初学者多,高手少,精通的更少由于我国高等教育制度教材陈旧,加上java自身发展不过十年左右的时间还有一个很重要的原因就是java这门语言更适合商业应用所以高校里大部分博士老师们对此语言的了解甚至不比本科生多在这种环境下,很多人对java感到茫然,不知所措,不懂java能做什么即便知道了

Java初学者

一位资深程序员大牛给予Java初学者的学习路线建议 java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是我你是如何学习Java的,能不能给点建议?今天我是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈每个阶段要学习的内容甚至是一些书籍.这一部分的内容,同样适用于一些希望转行到Java的同学. 在大家看之前,我要先声明两点.1.由于我本人是Java后端开发出身,因此所推荐的学习内容是Java Web和Java后端开发的路线,非Java Web和J

一位资深程序员大牛给予Java初学者的学习建议(转)

一位资深程序员大牛给予Java初学者的学习建议 这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是我你是如何学习Java的,能不能给点建议? 今天我是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈每个阶段要学习的内容甚至是一些书籍.这一部分的内容, 同样适用于一些希望转行到Java的同学. 在大家看之前,我要先声明两点. 1.由于我本人是Java后端开发出身,因此所推荐的学习内容是Java Web和Java后端开发的路线, 非Java Web和Java后

Android中通过反射来设置Toast的显示时间

这个Toast的显示在Android中的用途还是非常大的,同一时候我们也知道toast显示的时间是不可控的.我们仅仅能改动他的显示样式和显示的位置,尽管他提供了一个显示时间的设置方法.可是那是没有效果的(后面会说到).他有两个静态的常量Toast.SHORT和Toast.LONG,这个在后面我会在源码中看到这个两个时间事实上是2.5s和3s. 那么我们假设真想控制toast的显示时间该怎么办呢?真的是无计可施了吗?天无绝人之路,并且Linux之父以前说过:遇到问题就去看那个操蛋的源码吧.!以下就