我需要一个可变倒数计时器,持续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秒计时器。上面的厨房定时器很简单,用户只需将其调到一定量即可。
答案 0 :(得分:3)
为什么不使用一个以“完整”开头的JProgressBar
,并随着时间的减少而清空?您可以在条形图上覆盖剩余时间(以秒为单位),从而避免使用额外的屏幕空间。
答案 1 :(得分:1)
这很简单......标签和按钮应该没问题。以下是一些例子
alt text http://www.itblogs.info/img/android_stopwatch.png
alt text http://handheld.softpedia.com/images/software/thumbs/Stopwatch-Android-thumb.png
alt text http://www.leancrew.com/all-this/images/iphone-stopwatch-laps.png
答案 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
想法具有吸引力。