throw new IllegalArgumentException();
{ Container parent = getParent ();  while (parent != null) { if (parent.areFocusTraversalKeysSet (id)) { keystrokes = parent.getFocusTraversalKeys (id); break; } parent = parent.getParent (); }  if (keystrokes == null) keystrokes = KeyboardFocusManager.getCurrentKeyboardFocusManager (). getDefaultFocusTraversalKeys (id); }
	public void setFocusTraversalKeys(int id, Set keystrokes) {		if (keystrokes == null)			throw new IllegalArgumentException();		Set sa;		Set sb;		String name;		switch (id) {			case KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS :				sa = getFocusTraversalKeys(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS);				sb = getFocusTraversalKeys(KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS);				name = "forwardFocusTraversalKeys";				break;			case KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS :				sa = getFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS);				sb = getFocusTraversalKeys(KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS);				name = "backwardFocusTraversalKeys";				break;			case KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS :				sa = getFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS);				sb = getFocusTraversalKeys(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS);				name = "upCycleFocusTraversalKeys";				break;			default :				throw new IllegalArgumentException();		}		int i = keystrokes.size();		Iterator iter = keystrokes.iterator();		while (--i >= 0) {			Object o = iter.next();			if (!(o instanceof AWTKeyStroke) || sa.contains(o) || sb.contains(o) || ((AWTKeyStroke) o).keyCode == KeyEvent.VK_UNDEFINED)				throw new IllegalArgumentException();		}		if (focusTraversalKeys == null)			focusTraversalKeys = new Set[3];		keystrokes = Collections.unmodifiableSet(new HashSet(keystrokes));		firePropertyChange(name, focusTraversalKeys[id], keystrokes);		focusTraversalKeys[id] = keystrokes;	}