Java:图形界面实现桌面数字时钟

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.util.Calendar;
import java.util.GregorianCalendar;

import javax.swing.JFrame;
/**
 *1、画界面  2、绘制界面(显示静态时间) 3、调用线程刷新界面
 */


public class Demo extends JFrame implements Runnable{
    Thread clock; 
    public Demo(){
        super("数字时钟"); // 调用父类的构造函数

        setFont(new Font("Times",Font.BOLD,60)); // 显示调用时钟的字体
        start();
        setSize(300,100);// 设置界面大小
        setVisible(true); // 窗口可视
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 关闭窗口的时候退出程序
    }

    public void start(){ //开始
        if(clock==null){
            clock = new Thread(this); // 实例化进程
            // jdk提供 一旦调用start方法,则会通过JVM找到run()方法
            clock.start(); // 开始进程
        }
    }

    // 运行进程
    public void run() { 
        while(clock!=null){
            repaint(); // 重绘界面
            try {
 
  • 9
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是使用Verilog实现数字时钟的仿真的代码示例: ``` // 时钟模块 module clock( input clk, output reg clk_out ); always@(posedge clk) begin clk_out <= ~clk_out; end endmodule // 数字显示模块 module display( input [3:0] num, output reg [6:0] seg ); always@(*) begin case(num) 4'h0: seg = 7'b1000000; 4'h1: seg = 7'b1111001; 4'h2: seg = 7'b0100100; 4'h3: seg = 7'b0110000; 4'h4: seg = 7'b0011001; 4'h5: seg = 7'b0010010; 4'h6: seg = 7'b0000010; 4'h7: seg = 7'b1111000; 4'h8: seg = 7'b0000000; 4'h9: seg = 7'b0010000; default: seg = 7'b0111111; endcase end endmodule // 数字时钟模块 module digital_clock( input clk, output reg [6:0] seg1, output reg [6:0] seg2, output reg [6:0] seg3, output reg [6:0] seg4 ); reg [3:0] hour = 4'b0000; reg [3:0] minute = 4'b0000; reg [3:0] second = 4'b0000; reg [1:0] cnt = 2'b00; clock c1( .clk(clk), .clk_out(cnt[1]) ); always@(posedge cnt[1]) begin cnt <= cnt + 1; if(cnt == 2'b11) begin second <= second + 1; if(second == 4'hA) begin second <= 4'b0000; minute <= minute + 1; if(minute == 4'hA) begin minute <= 4'b0000; hour <= hour + 1; if(hour == 4'hA) begin hour <= 4'b0000; end end end end end display d1( .num(hour), .seg(seg1) ); display d2( .num(minute), .seg(seg2) ); display d3( .num(second), .seg(seg3) ); assign seg4 = 7'b0000001; endmodule ``` 在上述代码中,我们首先定义了一个时钟模块 `clock`,用于生成一个时钟信号。然后定义了一个数字显示模块 `display`,根据输入的数字显示对应的七段数码管信号。最后定义了一个数字时钟模块 `digital_clock`,该模块通过时钟模块和计数器模块生成一个1秒的计时周期,并且根据当前时间使用数字显示模块将时间显示在四个七段数码管上。 你可以在仿真器中对该Verilog代码进行仿真,验证数字时钟的正确性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值