【问题标题】:swing: UI for a countdown timerswing:倒数计时器的 UI
【发布时间】:2010-07-16 16:22:38
【问题描述】:

我需要一个 1-10 秒的可变倒数计时器,可以停止和重新启动。有什么好的 UI 元素可以用来做这个?我需要一些直观的东西,它使用相当少量的屏幕空间,与正常大小的 JButton 相当。一个发条的厨房煮蛋计时器将是最好的物理类比:

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

注意 2:我需要一个变量倒计时。如果用户想要 1 秒,我想要一个 1 秒计时器。如果用户想要一个 8.2 秒的计时器,我想要一个 8.2 秒的计时器。上面的厨房定时器很简单,用户只要把它调到一定的量就可以了。

【问题讨论】:

    标签: java swing user-interface timer


    【解决方案1】:

    为什么不使用JProgressBar,它从“满”开始,随着时间的减少而清空?您将剩余时间(以秒为单位)覆盖在条上,从而避免使用额外的屏幕空间。

    【讨论】:

    • 这是一个指标。我需要一种显示和设置的方法。
    • (虽然 +1,因为它确实具有审美吸引力作为指标)
    【解决方案2】:

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

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

    【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      这很简单...标签和按钮应该没问题..这里有一些例子


      (来源:itblogs.info


      (来源:softpedia.com


      (来源:leancrew.com

      【讨论】:

      • 我该如何设置?我真的很想要一个像煮蛋器这样简单的东西。
      • 不确定“设置”是什么意思
      • 一个 JLabel 和它下面或侧面的 2 个 JButton 就足够了。剩下的只是造型
      • 设置它 = 决定将计时器设置为 10 秒或 1 秒或 5 秒。
      • 当按下设置按钮时,下拉菜单会出现这些时间。所以所有这些都需要点击 2 次。更多的自定义JSpinners集合可以替换时间标签来设置时间。
      【解决方案5】:

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

      【讨论】:

        猜你喜欢
        • 2015-04-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-03
        • 1970-01-01
        • 2021-10-26
        • 2011-12-19
        相关资源
        最近更新 更多