2017-04-03 8 views
3

SWT에서 Spinner 컨트롤의 경우 getText()getSelection()의 차이점은 무엇입니까? 내가 할 수있는 유일한 것은 반환 유형입니다. 그러나 텍스트를 입력 할 수 없으며 숫자 만 허용됩니다.SWT Spinner의 getText()와 getSelection()의 차이점은 무엇입니까?

gettext에() : 반환 아무 내용이없는 경우 수신기의 텍스트 필드 또는 빈 문자열의 내용의 복사본이 포함 된 문자열입니다.

getSelection() : 수신자의 위치 인 선택 항목을 반환합니다.

왜 우리는 두 개의 서로 다른 게터를 사용합니까?

+1

답변 중 하나가 문제를 해결했다면 녹색 체크 표시를 클릭하여 '수락'으로 표시하십시오. 또는 조사 결과를 요약하고이를 수용 한 것으로 표시하는 자신의 답변을 작성하십시오. 이렇게하면 여전히 답변이없는 이전 게시물에 집중할 수 있습니다. –

답변

2

Spinner은 숫자 선택을 나타내므로 getSelection()과 정확히 일치하는 값을 반환해야합니다.

getText()이 존재하는지 알 수는 없지만 선택한 값의 표현은 String입니다. getSelection()int7을 반환하면 "7"getText()이 반환합니다.

1

설명서에 따르면 getText()은 숫자가 아닌 값이나 최소/최대 범위를 벗어나는 값을 포함하여 현재 표시된 것과 같은 문자열을 반환합니다. getSelection()은 현재 또는 마지막 유효한 정수 값을 반환합니다.

일반적으로 getSelection()을 사용하려고합니다. 그 질문에 대답합니까?

+0

'Spinner'가 숫자가 아닌 값을 가질 수 있습니까? – Baz

+4

Mac의 @Baz Spinner는 숫자가 아닌 값을 허용합니다. macOS Spinner는 macOS가 스피너를 사용하지 않는 것처럼 기본 컨트롤이 아닙니다. –

+0

@ greg-449 알아두면 좋을 것 같습니다. Windows에서는 숫자가 아닌 값을 입력 할 수 없습니다. 지금은 리눅스를 확인할 수 없습니다. – Baz

0
  1. getText 구체적으로는 (내가 추측에는 요는이 이제까지 발생 여부를 플랫폼에 따라 다릅니다) 비어있을 수 있다고 말한다. 그런 다음 값의 의미에서 더 멀리,이 경우 getSelection 때문에, (http://help.eclipse.org/luna/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/swt/widgets/Spinner.html#setDigits(int) 참조) 진수로 Spinner입니다 사용할 때 당신은 getText를 사용할 수있는 값은 0

  2. 에서이 경우를 구별 할 수 있습니다. 그러나 소수 구분 기호는 현재 로캘에 따라 다릅니다.

+2

좋은 지적. 나는'getText()'에서 반환 된'String'을 파싱하는 것이 아니라'getSelection()'을 사용하고'getDigits()'를 사용하여 결과를 "조정"할 것을 권장합니다. – Baz

+2

SWT 컨트롤의 로케일은 플랫폼의 현재 로케일이며,'getSelection()'을 선호하는 또 다른 이유가 될 수있는 현재 Java 로케일과 반드시 ​​일치하지는 않습니다. –