2012-05-29 22 views
1

我有一個帶有兩個JButton(向上箭頭和向下箭頭按鈕)的jTextField。單擊向上箭頭按鈕,文本字段中的數值會增加1(++),然後單擊向下箭頭按鈕可以減少1( - )。JTextField在按下按鈕時自動更改值

我想知道的是如何在按下按鈕時自動「滾動/更改」該值?

謝謝

+1

你的意思是在按下按鈕時保持增加/減少的值? –

+0

確切地說,是否可以在不使用微調器的情況下做到這一點 – jadrijan

回答

2

JSpinner是做到這一點的最好辦法的鏈接。

但是如果你想要一個不同的實現,我會建議使用連接到JButtonMouseListener。當按下其中一個按鈕時(mousePressed事件),啓動javax.swing.Timer。每x毫秒(取決於您想要數字增加/減少的速度),檢查是否仍然按下JButton,並且鼠標是否仍然在JButton之上。如果是,則數量增加/減少。當用戶釋放鼠標(mouseReleased事件)時,Timer被停止/取消。

我從來沒有這樣做,所以我不知道它的工作原理。但這是我會嘗試的方式。

+0

還沒有嘗試過,但理論上這聽起來不錯。謝謝 – jadrijan

+0

我剛剛嘗試過,它的工作原理。非常感謝你。 – jadrijan

+0

@jadrijan哇,很酷。很高興我能幫上忙。 –

6

你可能想要的是一個JSpinner。更具體地說是一個SpinnerNumberModel。

這裏是一個演示 http://docs.oracle.com/javase/tutorial/uiswing/components/spinner.html

+0

還有沒有使用JSpinner對象的方法? – jadrijan

+2

*「是否有另一種方式沒有使用..」* ..component **爲此設計了**?當然,但你爲什麼要使用它?用例需要「JSpinner」無法提供什麼? –