2016-08-26 10 views
0

현재 시각 장애인 용 프로그램을 개발 중입니다. 내 프로그램에는 SWT MessageDialog 또는 MessageBox을 사용하여 구현 된 몇 가지 대화 상자가 있습니다.SWT MessageDialog 또는 MessageBox에서 버튼 대신 텍스트에 포커스를 설정하려면 어떻게해야합니까?

이 기능은 화면 판독 소프트웨어를 사용하는 사람들이나 시각 장애인에게 적합합니다. 그러나 새로 고침이 가능한 점자 디스플레이 (텍스트만으로 한 줄 40 문자로 표시)를 사용하는 시각 장애인은 대화 상자의 초점이 버튼에 있기 때문에 대화 상자에서 텍스트 메시지를 읽는 데 문제가 있으므로 점자 디스플레이에 버튼. 시각 장애인들은 스크롤하여 문자 메시지를 찾아야합니다.

때로는 스크롤이 너무 힘들어서 그에 대해 불평해야합니다. 포커스가 텍스트 메시지에 있다면 더 좋을 것입니다. 그런 다음 텍스트를 읽는 동안 아래로 스크롤 할 수 있으며 그 다음에는 단추 텍스트가 끝납니다.

SWT MessageDialog 또는 MessageBox 클래스를 사용하여 텍스트 메시지의 초점을 관리하려면 어떻게해야합니까?

이미 SWT 라이브러리의 여러 옵션을 사용하고 있기 때문에 자신의 MessageDialog 클래스를 만들고 싶지 않습니다.

답변

1

이름의 '메시지'부분을 제외하고는 MessageBoxMessageDialog은 근본적으로 다릅니다.

MessageBox은 SWT의 일부이며 기본 플랫폼의 구성 요소를 사용하여 대화 상자를 표시하므로 응용 프로그램 코드로 동작을 변경할 수 없습니다.

MessageDialog은 JFace에서 제공하며 사용자 정의 할 수 있습니다. 기본 포커스 동작을 변경해야하는 경우 MessageDialog 만 사용해야합니다.

메시지를 표시하는 라벨에 포커스를하려면이 같은 create()를 오버라이드 (override) 할 수 있습니다 :

class MyMessageDialog extends MessageDialog { 
    @Override 
    public void create() { 
    super.create(); 
    if(usingBraille) { 
     messageLabel.forceFocus(); 
    } 
    } 
} 
+0

나에게 좋은 소리. 나는 그것을 시도 할 것이고 당신에게 결과를 알려줄 것이다. 감사! – APex

+0

작품, 고마워요! JAWS에서 Line 및 Structured의 두 가지 모드로 테스트했습니다. 구조화 모드에서는 포커스를 텍스트로 변경하지 않아도되지만 라인 모드에서는 필자가해야합니다. 이제는 시각 장애인이 JAWS를 사용하는 방법에 따라 다릅니다. – APex