2014-04-28 3 views
1

대신 기본 값을 반환하는 JSpinner 내가 직접 JSpinner에 입력하면 SpinnerNumberModel (1, Double.MIN_VALUE, Double.MAX_VALUE, 0.01)의 JSpinner 내가 가진 입력 한

와 - spinner.getValue()가 반환됩니다 '1'대신 1000

의 일부 대화 상자에서 확인을 클릭하고 얻을 1000

1000을 입력하고 JDialog의 emty 공간을 클릭 한 다음 다른 값으로 포커스를 변경 한 후 값이 정확하면 = 1000이됩니다. 스피너 화살표로 값을 변경하면 값도 정확합니다.

Jspinner을 수정하는 방법 그래서 값을 얻기 전에 다른 곳으로 포커스를 변경하지 않고 타이핑 값을 지원합니까? 이런 일이 발생하고 그것을 해결하는 방법을 왜 자바 JDK 1.6.0_23

답변

1

JSpinner JavaDoc

설명합니다.

JSpinner는 모델의 현재 요소 또는 값을 표시하고 잠재적으로 변경할 수있는 하위 구성 요소 하나를 가지고 있습니다.이 요소는 편집기라고합니다. 에디터는 JSpinner의 생성자에 의해 작성되어 에디터 프로퍼티로 변경할 수 있습니다. JSpinner의 에디터는 ChangeEvents를 수신하여 모델과 동기화 상태를 유지합니다. 사용자가 편집기에서 표시된 값을 변경 한 경우 모델의 값이 편집기의 값과 다를 수 있습니다. 모델이 에디터와 동일한 값을 갖도록하려면 commitEdit 메소드를 사용하십시오. 예 :