Translator

Translator (접근성 인터페이스 번역기)

Accessible 인터페이스를 구현하지 않는 객체를 Accessible 인터페이스로 번역해 주는 클래스입니다. 보조 기술(assistive technology)이 접근성 정보를 얻을 수 있게 도와줘요.

출처: Java API Reference

본문

Translator 클래스는 Accessible 인터페이스를 구현하지 않는 객체에 Accessible 인터페이스로의 번역을 제공합니다. 보조 기술은 TranslatorgetAccessible 클래스 메서드를 사용해 Accessible 인터페이스를 구현한 객체를 얻을 수 있어요. 전달된 객체가 이미 Accessible 인터페이스를 구현하고 있다면, getAccessible은 그 객체를 그대로 반환합니다.

public class Translator extends AccessibleContext
    implements Accessible, AccessibleComponent

보조 기술이 사용하는 예시는 다음과 같아요.

Accessible accessible = Translator.getAccessible(someObj);
// obtain information from the 'accessible' object.

이 클래스는 AccessibleContext를 상속하면서 AccessibleAccessibleComponent를 구현하며, source라는 보호된 필드에 번역이 필요한 원본 객체를 담습니다.

⚠️ 참고: 이 구현은 빠진 부분이 많고, 툴킷의 접근성 기능을 구현하는 데 권장되는 방법이 아닙니다. 이 코드에 의존하는 대신, 툴킷의 컴포넌트가 Accessible 인터페이스를 직접 구현하는 것이 좋아요.

getAccessible()

public static Accessible getAccessible(Object o)

Accessible 인터페이스를 구현한 객체를 얻습니다.

접근성 정보 메서드들

다음과 같은 메서드들로 객체의 접근성 속성을 읽어옵니다.

public AccessibleContext getAccessibleContext()   // this 객체 반환
public String getAccessibleName()                 // 접근성 이름
public String getAccessibleDescription()          // 접근성 설명
public AccessibleRole getAccessibleRole()         // 역할
public AccessibleStateSet getAccessibleStateSet() // 상태 집합
public Accessible getAccessibleParent()           // 접근성 부모
public int getAccessibleIndexInParent()           // 부모 안에서의 인덱스
public int getAccessibleChildrenCount()           // 접근성 자식 수
public Accessible getAccessibleChild(int i)       // n번째 접근성 자식
public Accessible getAccessibleAt(Point p)        // 좌표 지점의 접근성 자식

위치·모양 관련 메서드들

AccessibleComponent 구현으로서 객체의 위치와 모양, 배경색, 커서 등도 다룹니다.

public Rectangle getBounds()       // 현재 경계
public Color getBackground()       // 배경 색
public boolean contains(Point p)   // 지점이 경계 안인지
public boolean isFocusTraversable()// 포커스를 받을 수 있는지
public void requestFocus()         // 포커스 요청
public void addFocusListener(FocusListener l)      // 포커스 리스너 추가
public void removeFocusListener(FocusListener l)   // 포커스 리스너 제거
public void addPropertyChangeListener(PropertyChangeListener l)

getAccessibleContext()는 이 객체 자신을 반환한다는 점이 흥미로운데, 번역기의 역할이 곧 접근성 컨텍스트 자체이기 때문이에요.

더 알아보기 (Learn more)

Java 공식 API