2012-05-29 4 views
1

두 개의 JButton이있는 jTextField가 있습니다 (위쪽 화살표 및 아래쪽 화살표 버튼). 위쪽 화살표 버튼을 클릭하면 텍스트 필드의 숫자 값이 1 (++) 증가하고 아래쪽 화살표 버튼을 클릭하면 텍스트 필드의 숫자 값이 1 (-) 감소합니다.JTextField는 버튼을 누르는 동안 자동으로 값을 변경합니다.

버튼을 누르고있는 동안 값을 자동으로 "스크롤/변경"하는 방법을 알고 싶습니다.

고맙습니다.

+1

버튼을 누르고있는 동안 값을 계속 늘리거나 줄이는 것을 의미합니까? –

+0

정확하게, 회 전자를 사용하지 않고이 작업을 수행 할 수 있습니까? – jadrijan

답변

2

JSpinner이 작업을 수행하는 가장 좋은 방법에 대한 링크입니다.

그러나 다른 구현을 원할 경우 JButton에 첨부 된 MouseListener을 사용하는 것이 좋습니다. 단추 중 하나 (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

* "..를 사용하지 않는 다른 방법이 있습니까?"* .. 구성 요소 **이 경우 ** 설계 되었습니까? 물론, 왜 그것을 사용하겠습니까? 유스 케이스는'JSpinner'가 제공하지 못하게하는 것을 요구합니까? –

관련 문제