1.重写JPanel的paint方法,在JPanel上画上实时时间的字符串。(下边的例子是用的这个方法)
2.在JPanel加个label,在上面设置实时时间的字符串。
--------------------------------------------------------------------------
import java.awt.Graphics
import java.text.SimpleDateFormat
import java.util.Date
import java.util.Timer
import java.util.TimerTask
import javax.swing.JFrame
import javax.swing.JPanel
public class ShowTimeApp extends JFrame {
// 时间格式
private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
public ShowTimeApp() {
// 设置显示窗口的参数
setDefaultCloseOperation(EXIT_ON_CLOSE)
// 居中显示
setLocationRelativeTo(null)
// 窗口大小
setSize(200, 150)
// 窗口不可改变大小
setResizable(false)
// 添加时间的JPanel
getContentPane().add(new TimePanel())
// 显示
setVisible(true)
// 设置时间变化的任务
Timer timer = new Timer()
timer.schedule(new ShowTime(), new Date(), 1000)
}
class ShowTime extends TimerTask {
public void run() {
// 刷新
repaint()
}
}
class TimePanel extends JPanel {
public void paint(Graphics g) {
super.paint(g)
// 显示时间
g.drawString(sdf.format(new Date()), 10, 10)
}
}
public static void main(String[] args) {
new ShowTimeApp()
}
}
import javax.swing.*import java.awt.*
public class FrameTest extends JFrame{
/**
* @param args
*/
public FrameTest(){
super("本窗口只显示5分钟")
setSize(400,400)
setVisible(true)
}
public static void main(String[] args) throws Exception {
// TODO 自动生成方法存根
FrameTest frame = new FrameTest()
Thread.sleep(5000)//睡5000ms (即5秒)
frame.setVisible(false)//隐藏了.
// 以下那句是响应关闭的,如果在期间不用到关窗口,不用这句也行的.
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
System.exit(0)//退出整个运行,要记得哦,不然虽看不见窗口了,但实际上并没有退出执行呢.
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)