2013-06-12 2 views
0

나는 javax.accessibility와 함께 앱을 만들려고하고있다. 패널이있는 프레임이 있으며이 패널에는 버튼이 있습니다. 나는 내가 원하는 것은 접근 이름과 쇼가 될 것입니다 내가이EventQueueMonitor.getCurrentMousePosition()에서 null을 얻는 중입니다.

public void mouseClicked(MouseEvent e) { 
    Point mousePos = EventQueueMonitor.getCurrentMousePosition(); 
    Accessible accComp = EventQueueMonitor.getAccessibleAt(mousePos); 
    String accName = accComp.getAccessibleContext().getAccessibleName(); 
    System.out.println(accName); 
} 

했다 테스트에 대한 그래서

의 MouseListener

의 accessibility.properties에 포함 된 접근성 클래스를 만들고이 클래스가 GUIInitializedListener를 구현했다 콘솔에서. 하지만 나는 항상 mousePos = null을 얻고 있습니다. 나는 내가 뭘 잘못하고 있는지 이해하지 못한다. 아무도 도와 줄 수 있습니까?

+0

마우스 위치를 가져 오기 위해'e.getPoint(); '를 시도 했습니까? –

+0

예, e.getPoint()를 사용하면 위치가 표시되지만 NULL이됩니다. accComp = EventQueueMonitor.getAccessibleAt (mousePos); 그래서 나는 이유를 이해하지 못한다. 여기에 예제가 있습니다. http://www.java2s.com/Code/Java/Swing-JFC/AGUItoshowaccessibleinformationfromcomponentsinan.htm // 현재 마우스 아래에있는 구성 요소를 찾습니다. Point currentPosition = EventQueueMonitor.getCurrentMousePosition(); 액세스 가능한 comp = EventQueueMonitor.getAccessibleAt (currentPosition); –

답변

0

그래서 답변을 찾았습니다.

Component c=(Component)e.getSource(); 
    Point mousePos =e.getLocationOnScreen(); 
    Accessible a; 
    a = SwingUtilities.getAccessibleAt(c, mousePos); 
관련 문제