Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从何处开始使用Java中的Swing制作动画时钟?_Java_Swing_Animation - Fatal编程技术网

从何处开始使用Java中的Swing制作动画时钟?

从何处开始使用Java中的Swing制作动画时钟?,java,swing,animation,Java,Swing,Animation,我正在尝试用Java中的Swing制作一个动画时钟。我发布的图片是我寻找的基本概念。最后,我希望箭头保持静止,数字移动以表示小时,另外我希望有一个60个框的嵌套圆也这样做。我不是在寻找如何做这件事的代码,只是一些我应该如何开始的提示,好教程的链接,诸如此类的东西。谢谢 编辑:我要说的是,我实际上并不是在制作时钟,这只是解释我要完成的工作的前提的最简单的方法,答案越一般越好。你可以通过覆盖该方法在一个表上绘制它 使用a每秒钟勾选一次以重新绘制时钟。计时器触发面板可以侦听的ActionEve

我正在尝试用Java中的Swing制作一个动画时钟。我发布的图片是我寻找的基本概念。最后,我希望箭头保持静止,数字移动以表示小时,另外我希望有一个60个框的嵌套圆也这样做。我不是在寻找如何做这件事的代码,只是一些我应该如何开始的提示,好教程的链接,诸如此类的东西。谢谢



编辑:我要说的是,我实际上并不是在制作时钟,这只是解释我要完成的工作的前提的最简单的方法,答案越一般越好。

你可以通过覆盖该方法在一个表上绘制它

使用a每秒钟勾选一次以重新绘制时钟。计时器触发面板可以侦听的ActionEvents

至于绘图,带数字的方框的中心可以用一点三角法来计算。对于小时框:
x=sin(小时/12*2*pi)
y=cos(小时/12*2*pi)
。对于分钟框:
x=sin(分钟/60*2*pi)
y=cos(分钟/60*2*pi)
。这些将是相对于时钟的中心,需要乘以一些常数。事实上,这些方程可能不太正确,但方法是这样的。

您可以通过重写该方法在一个图上绘制它

使用a每秒钟勾选一次以重新绘制时钟。计时器触发面板可以侦听的ActionEvents

至于绘图,带数字的方框的中心可以用一点三角法来计算。对于小时框:
x=sin(小时/12*2*pi)
y=cos(小时/12*2*pi)
。对于分钟框:
x=sin(分钟/60*2*pi)
y=cos(分钟/60*2*pi)
。这些将是相对于时钟的中心,需要乘以一些常数。事实上,这些公式可能不太正确,但方法是这样的。

上的这一页似乎是一个很好的起点。免责声明:我以前从未认真处理过Java图形。

上的这个页面看起来可能是一个很好的开始。免责声明:我以前从未认真处理过Java图形。

提供时钟布局布局管理器

提供了一个ClockLayout layoutmanager

我在其中找到了一些代码,我相信这些代码实际上与您想要的非常接近。它演示了如何围绕给定点在一个圆中绘制多个精灵。它甚至以1/10秒的速度制作动画。放慢速度到60分钟,接近你想要的速度

注意,代码没有按发布的方式编译。只要注释掉这两条错误的语句,它就可以正常工作。

我在其中找到了一些代码,我相信这些代码实际上与您想要的非常接近。它演示了如何围绕给定点在一个圆中绘制多个精灵。它甚至以1/10秒的速度制作动画。放慢速度到60分钟,接近你想要的速度


注意,代码没有按发布的方式编译。只需注释2个错误语句,它就可以正常工作。你是否考虑使用JavaFX?www.javafx.com