swing:倒数计时器的UI

时间:2010-07-16 16:22:38

标签: java swing user-interface timer

我需要一个可变倒数计时器,持续1-10秒,可以停止并重新启动。什么是一组很好的UI元素用于此?我需要一些直观的东西,使用相当少的屏幕空间,与普通大小的JButton相比。一个终结的厨房煮蛋计时器将是最好的物理类比:

alt text http://ecx.images-amazon.com/images/I/41oixoyyEAL._SL500_AA300_.jpg

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

注意2 :我需要一个变量倒数计时器。如果用户想要1秒钟,我想要1秒计时器。如果用户想要8.2秒计时器,我想要一个8.2秒计时器。上面的厨房定时器很简单,用户只需将其调到一定量即可。

5 个答案:

答案 0 :(得分:3)

为什么不使用一个以“完整”开头的JProgressBar,并随着时间的减少而清空?您可以在条形图上覆盖剩余时间(以秒为单位),从而避免使用额外的屏幕空间。

答案 1 :(得分:1)

答案 2 :(得分:1)

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

对它不太满意,但有点像我想要的那样。

答案 3 :(得分:1)

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

答案 4 :(得分:0)

我会使用JSpinner进行设置;一个javax.swing.Timer用于计算;和单个按钮,标记为“开始”或“停止”作为Timer状态的函数。几乎所有事情都可以展示,但@Adamski的JProgressBar想法具有吸引力。