Cambiamento del comportamento nelle eccezioni quando si impostano le chiavi trasversali del focus AWT

Java 8 introduce un cambiamento del comportamento per le eccezioni del runtime generate dai metodi java.awt.Component.setFocusTraversalKeys(int id, Set<? extends AWTKeyStroke> keystrokes) e java.awt.KeyboardFocusManager.setDefaultFocusTraversalKeys(int id, Set<? extends AWTKeyStroke> keystrokes) quando l'argomento keystrokes contiene oggetti non del tipo AWTKeyStroke. In Java 8, i metodi generano per questo errore un'eccezione ClassCastException invece di un'eccezione IllegalArgumentException.

Questa regola contrassegna le chiamate ai metodi setFocusTraversalKeys e setDefaultFocusTraversalKeys quando la chiamata del metodo è circondata da un istruzione try con una clausola catch per IllegalArgumentException.

Il seguente esempio mostra il contrassegno di un metodo setFocusTraversalKeys.

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

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

I metodi setFocusTraversalKeys e setDefaultFocusTraversalKeys continuano a generare un'eccezione IllegalArgumentException per altri motivi come descritto nella documentazione Java. Valutare la logica nel blocco catch per vedere è necessario gestire l'eccezione ClassCastException o un tipo di eccezione di runtime più generica.

Per ulteriori informazioni su queste classi, consultare le seguenti risorse: