繁体   English   中英

swing:倒数计时器的用户界面

[英]swing: UI for a countdown timer

我需要一个介于1到10秒之间的可变倒数计时器,该计时器可以停止并重新启动。 可以使用哪些好的UI元素集? 我需要一个直观的东西,它使用相当少的屏幕空间,与普通大小的JButton相当。 最好的物理类比是一个发条式厨房煮蛋计时器:

替代文字

注意 :我知道如何实现计时器并重新启动它们,我只需要弄清楚要使用哪些UI元素。

注意2 :我需要一个可变的倒数计时器。 如果用户想要1秒,我想要1秒计时器。 如果用户想要一个8.2秒的计时器,我想要一个8.2秒的计时器。 上面的厨房定时器很简单,用户只需将其旋转到一定程度然后放开即可。

为什么不使用JProgressBar ,它以“ full”开始并随着时间的减少而清空? 您将剩余时间(以秒为单位)覆盖在条形图上,因此避免使用其他屏幕空间。

这非常简单...标签和按钮应该没问题。这是一些示例

替代文字
(来源: itblogs.info

替代文字
(来源: softpedia.com

替代文字
(来源: leancrew.com

对于短期解决方案,我使用了JSlider ...我向其BoundedRangeModel中添加了一个ActionListener,并在发生更改并且BoundedRangeModel.getValueIsAdjusting()返回false时设置了计时器。 当我的计时器倒计时但尚未过期并且BoundedRangeModel.getValueIsAdjusting()返回false时,我将调用BoundedRangeModel.setValue()。

不太满意,但是可以满足我的要求。

一个(非常荒谬的)简单解决方案:如果您不需要太多图形功能,只需使用一个JButton即可显示计时器运行时剩余的秒数。 计时器关闭时,显示“开始”; 点击它将开始倒计时。 然后,您可以在计时器运行时单击以停止(或暂停)它。

我将使用JSpinner进行设置; 一个用于计数的javax.swing.Timer 以及一个标记为“开始”或“停止”的按钮,作为Timer状态的函数。 几乎任何东西都可以显示,但是@Adamski的JProgressBar想法很JProgressBar

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM