如何在JAVA的GUI界面里插入一个显示实时时间的JPanel?

如何在JAVA的GUI界面里插入一个显示实时时间的JPanel?,第1张

显示实时时间的JPanel

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)//退出整个运行,要记得哦,不然虽看不见窗口了,但实际上并没有退出执行呢.

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11847505.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存