AWT 초점 순회 키 설정 시 예외의 동작 변경

Java 8에서는 java.awt.Component.setFocusTraversalKeys(int id, Set<? extends AWTKeyStroke> keystrokes)java.awt.KeyboardFocusManager.setDefaultFocusTraversalKeys(int id, Set<? extends AWTKeyStroke> keystrokes) 메소드에서 발생된 런타임 예외에 대해 동작 변경을 소개하는데, 이 경우 keystrokes 인수에 유형 AWTKeyStroke이 아닌 오브젝트가 포함됩니다. Java 8에서, 이 메소드에서는 이 오류에 대해 IllegalArgumentException 대신 ClassCastException이 발생합니다.

이 규칙은 IllegalArgumentException에 대해 catch 절로 try 문에서 메소드 호출을 둘러싸는 경우 setFocusTraversalKeyssetDefaultFocusTraversalKeys 메소드에 대한 호출에 플래그를 지정합니다.

다음 예제에서는 플래그가 지정된 setFocusTraversalKeys 메소드를 표시합니다.

public static void testSetFocusTraversal(Component comp, int id, Set keys) {

        try { comp.setFocusTraversalKeys (id, keys);} catch (IllegalArgumentException iae) {
            ...
        } }

setFocusTraversalKeyssetDefaultFocusTraversalKeys 메소드는 Java 문서에 설명된 대로 기타 이유로 IllegalArgumentException이 계속 발생합니다. catch 블록의 로직을 평가하여 ClassCastException 또는 추가 일반 런타임 예외 유형도 처리해야 하는지 확인하십시오.

이러한 클래스에 대한 자세한 정보는 다음을 참조하십시오.