按下按钮时,JTextField自动更改值

时间:2012-05-29 14:10:31

标签: java swing scroll jbutton jtextfield

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

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

谢谢

2 个答案:

答案 0 :(得分:6)

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

以下是演示的链接 http://docs.oracle.com/javase/tutorial/uiswing/components/spinner.html

答案 1 :(得分:2)

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

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

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