To listen to focus change events between components, install a listener with the keyboard focus manager. If you need the ability-veto (reject) a focus change, install a vetoable listener with the keyboard focus manager.
Keyboardfocusmanager.getcurrentkeyboardfocusmanager (). Addpropertychangelistener (New FocusChangeListener ()); Keyboardfocusmanager.getcurrentkeyboardfocusmanager (). Addvetoablechangelistener (New FocusVetoableChangeListener ()); Class Focuschangelistener implements PropertyChangeListener {public void PropertyChange (Propertychangeevent evt) { Component Oldcomp = (Component) evt.getoldvalue (); Component Newcomp = (Component) evt.getnewvalue (); if ("Focusowner". Equals (Evt.getpropertyname ())) {if (Oldcomp = = null) {//the Newcomp Component gained the focus} else {//The Oldcomp component lost the focus }} else if ("Focusedwindow". Equals (Evt.getpropertyname ())) {if (Oldcomp = = null) { The Newcomp window gained the focus} else {//the Oldcomp window lostThe Focus}}}} class Focusvetoablechangelistener implements Vetoablechangeli Stener {public void Vetoablechange (Propertychangeevent evt) throws propertyvetoexception {Component ol Dcomp = (Component) evt.getoldvalue (); Component Newcomp = (Component) evt.getnewvalue (); if ("Focusowner". Equals (Evt.getpropertyname ())) {if (Oldcomp = = null) {//the Newcomp Component would gain the focus} else {//The Oldcomp component would lose the focus }} else if ("Focusedwindow". Equals (Evt.getpropertyname ())) {if (Oldcomp = = null) { The Newcomp window would gain the focus} else {//the Oldcomp win Dow would lose the focus}} Boolean Vetofocuschange =false; if (Vetofocuschange) {throw new Propertyvetoexception ("Message", evt); } }
e609. Listening to all Focus changes between, a application