【问题标题】:JTextField change value automatically while button pressed按下按钮时 JTextField 自动更改值
【发布时间】:2012-05-29 14:10:31
【问题描述】:

我有一个带有两个 JButton(向上箭头和向下箭头按钮)的 jTextField。单击向上箭头按钮,文本字段中的数值增加 1 (++),单击向下箭头按钮,文本字段中的数值减少 1 (--)。

我想知道的是如何在按下按钮时自动“滚动/更改”值?

谢谢

【问题讨论】:

  • 您的意思是在按下按钮时不断增加/减少值?
  • 没错,不使用微调器是否可以做到这一点

标签: java swing scroll jbutton jtextfield


【解决方案1】:

你可能想要的是一个 JSpinner。更具体地说是 SpinnerNumberModel。

这是一个演示链接 http://docs.oracle.com/javase/tutorial/uiswing/components/spinner.html

【讨论】:

  • 不使用 JSpinner 对象还有其他方法吗?
  • “有没有其他方法不使用..” ..component 设计为此?当然可以,但你为什么要使用它?用例要求JSpinner 无法提供什么?
【解决方案2】:

JSpinner 是执行此操作的最佳方式。

但如果您想要不同的实现,我建议使用附加到JButtons 的MouseListener。当按下其中一个按钮(mousePressed 事件)时,将启动 javax.swing.Timer。每 x 毫秒(取决于您希望增加/减少数字的速度)检查是否仍然按下 JButton 以及鼠标是否仍在 JButton 上方。如果是,则增加/减少数量。当用户释放鼠标(mouseReleased 事件)时,Timer 将停止/取消。

我从来没有这样做过,所以我不确定它是否有效。但这是我会尝试的方式。

【讨论】:

  • 还没试过,但理论上这听起来是对的。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-02
相关资源
最近更新 更多