java可视化编程实践--桌面时钟

定义六个类用于实现整个可视化时钟
Clock.java:时钟类,聚合表盘和3个指针对象,构成整个时钟

Plate.java:表盘类,用来显示静态的时钟表盘、刻度等内容

Arm.java:指针类,用来显示时、分、秒指针

ClockComponent:可视化时钟组件类,时钟的可视化显示,即整个时钟界面的表盘显示。

ClockFrame:整个程序窗口类,用于显示整个程序的窗口。

VisualClock:主程序类,用于程序的启动。

主要的程序如下:

VisualClock:

import java.awt.EventQueue;
import javax.swing.JFrame;
/*顶层窗口 JFrame 内容区域包括 2 个部分,上方为时钟的可视化显示,下方
为文本显示,上方用 JComponent 组件实现,在其 paintComponent 方法中绘制,
下方用 JLabel 实现,可以采用 BorderLayout 布局实现
*/

//添加主程序类
public class VisualClock {
	public static void main(String[] args) {
		EventQueue.invokeLater(()->{
			ClockFrame frame=new ClockFrame();
			frame.setTitle("可视化时钟");
			frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );
			frame.setVisible(true);
			});
	}
}

ClockFrame:

import java.awt.*;
import java.text.DateFormat;
import java.text.SimpleDateFormat;

import javax.swing.*;
import java.util.Date;
//创建顶层窗口类
public class ClockFrame extends JFrame {
	private ClockComponent comp;//整个时钟的显示
	private JLabel timeLabel;//时钟的文本显示
	public ClockFrame() {
		setSize(500,400);
		setLayout(new BorderLayout());
		comp=new ClockComponent();
		add(comp, BorderLayout.CENTER);
		JPanel timeLabelPanel=new JPanel();
		timeLabel=new JLabel(""+new Date());
		timeLabelPanel.add(timeLabel);
		add(timeLabelPanel, BorderLayout.SOUTH);
		//创建定时器并通过start启动定时器,每隔一秒根据当前系统生成的时间
		//生成字符串,将字符串更新到timeLabel上,同时调用repaint方法刷新comp显示
		new Timer(1000,event->{
			Date date=new Date();
			DateFormat format=new SimpleDateFormat(
			     "yyyy-MM-dd HH:mm:ss");
			     String time=format.format(date);
			     timeLabel.setText(time);
			     comp.repaint();
			}).start();
	}
}

ClockCompon

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值