<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FEvent%2FFocus_Event</id>
		<title>Java/Event/Focus Event - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FEvent%2FFocus_Event"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Event/Focus_Event&amp;action=history"/>
		<updated>2026-04-22T17:10:09Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Event/Focus_Event&amp;diff=5766&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Event/Focus_Event&amp;diff=5766&amp;oldid=prev"/>
				<updated>2010-06-01T05:58:29Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 05:58, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Event/Focus_Event&amp;diff=5765&amp;oldid=prev</id>
		<title> в 18:01, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Event/Focus_Event&amp;diff=5765&amp;oldid=prev"/>
				<updated>2010-05-31T18:01:43Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Changes the focus traversal keys for the entire application. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
import java.awt.AWTKeyStroke;&lt;br /&gt;
import java.awt.KeyboardFocusManager;&lt;br /&gt;
import java.util.HashSet;&lt;br /&gt;
import java.util.Set;&lt;br /&gt;
import javax.swing.KeyStroke;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    Set&amp;lt;AWTKeyStroke&amp;gt; set = new HashSet&amp;lt;AWTKeyStroke&amp;gt;(KeyboardFocusManager&lt;br /&gt;
        .getCurrentKeyboardFocusManager().getDefaultFocusTraversalKeys(&lt;br /&gt;
            KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS));&lt;br /&gt;
    set.add(KeyStroke.getKeyStroke(&amp;quot;F2&amp;quot;));&lt;br /&gt;
    KeyboardFocusManager.getCurrentKeyboardFocusManager().setDefaultFocusTraversalKeys(&lt;br /&gt;
        KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, set);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Change the backward focus traversal keys for the application ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.awt.AWTKeyStroke;&lt;br /&gt;
import java.awt.KeyboardFocusManager;&lt;br /&gt;
import java.util.HashSet;&lt;br /&gt;
import java.util.Set;&lt;br /&gt;
import javax.swing.KeyStroke;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    Set&amp;lt;AWTKeyStroke&amp;gt; set = new HashSet&amp;lt;AWTKeyStroke&amp;gt;(KeyboardFocusManager&lt;br /&gt;
        .getCurrentKeyboardFocusManager().getDefaultFocusTraversalKeys(&lt;br /&gt;
            KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS));&lt;br /&gt;
    set.add(KeyStroke.getKeyStroke(&amp;quot;F3&amp;quot;));&lt;br /&gt;
    KeyboardFocusManager.getCurrentKeyboardFocusManager().setDefaultFocusTraversalKeys(&lt;br /&gt;
        KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, set);&lt;br /&gt;
  }&lt;br /&gt;
} &lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Change the forward focus traversal keys for a component ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.awt.KeyboardFocusManager;&lt;br /&gt;
import java.util.HashSet;&lt;br /&gt;
import java.util.Set;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.KeyStroke;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    JButton component = new JButton(&amp;quot;a&amp;quot;);&lt;br /&gt;
    Set set = new HashSet(component&lt;br /&gt;
        .getFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS));&lt;br /&gt;
    set.add(KeyStroke.getKeyStroke(&amp;quot;F2&amp;quot;));&lt;br /&gt;
    component.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, set);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Determining If a Focus Lost Is Temporary or Permanent ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.awt.event.FocusAdapter;&lt;br /&gt;
import java.awt.event.FocusEvent;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    JButton component = new JButton(&amp;quot;a&amp;quot;);&lt;br /&gt;
    component.addFocusListener(new MyFocusListener());&lt;br /&gt;
    &lt;br /&gt;
    JFrame f = new JFrame();&lt;br /&gt;
    f.add(component);&lt;br /&gt;
    f.pack();&lt;br /&gt;
    f.setVisible(true);&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MyFocusListener extends FocusAdapter {&lt;br /&gt;
  public void focusGained(FocusEvent evt) {&lt;br /&gt;
    System.out.println(&amp;quot;gained the focus.&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  public void focusLost(FocusEvent evt) {&lt;br /&gt;
    System.out.println(&amp;quot;lost the focus.&amp;quot;);&lt;br /&gt;
    boolean isTemporary = evt.isTemporary();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Determining the Opposite Component of a Focus Event ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.awt.ruponent;&lt;br /&gt;
import java.awt.event.FocusAdapter;&lt;br /&gt;
import java.awt.event.FocusEvent;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    JButton component = new JButton(&amp;quot;a&amp;quot;);&lt;br /&gt;
    component.addFocusListener(new MyFocusListener());&lt;br /&gt;
    JFrame f = new JFrame();&lt;br /&gt;
    f.add(component);&lt;br /&gt;
    f.pack();&lt;br /&gt;
    f.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MyFocusListener extends FocusAdapter {&lt;br /&gt;
  public void focusGained(FocusEvent evt) {&lt;br /&gt;
    Component c = evt.getOppositeComponent();&lt;br /&gt;
    System.out.println(c.getName());&lt;br /&gt;
  }&lt;br /&gt;
  public void focusLost(FocusEvent evt) {&lt;br /&gt;
    Component c = evt.getOppositeComponent();&lt;br /&gt;
    System.out.println(c.getName() + &amp;quot;Opposite Component&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}  &lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Finding the Next Focusable Component ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.awt.ruponent;&lt;br /&gt;
import java.awt.Container;&lt;br /&gt;
import java.awt.FlowLayout;&lt;br /&gt;
import java.awt.FocusTraversalPolicy;&lt;br /&gt;
import java.awt.KeyboardFocusManager;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) {&lt;br /&gt;
    JFrame frame = new JFrame();&lt;br /&gt;
    JButton component1 = new JButton(&amp;quot;1&amp;quot;);&lt;br /&gt;
    JButton component2 = new JButton(&amp;quot;2&amp;quot;);&lt;br /&gt;
    JButton component3 = new JButton(&amp;quot;3&amp;quot;);&lt;br /&gt;
    frame.setLayout(new FlowLayout());&lt;br /&gt;
    frame.add(component1);&lt;br /&gt;
    frame.add(component2);&lt;br /&gt;
    frame.add(component3);&lt;br /&gt;
    frame.pack();&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
    System.out.println(findNextFocus().getName());&lt;br /&gt;
  }&lt;br /&gt;
  public static Component findNextFocus() {&lt;br /&gt;
    Component c = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner();&lt;br /&gt;
    Container root = c.getFocusCycleRootAncestor();&lt;br /&gt;
    FocusTraversalPolicy policy = root.getFocusTraversalPolicy();&lt;br /&gt;
    Component nextFocus = policy.getComponentAfter(root, c);&lt;br /&gt;
    if (nextFocus == null) {&lt;br /&gt;
      nextFocus = policy.getDefaultComponent(root);&lt;br /&gt;
    }&lt;br /&gt;
    return nextFocus;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Find the previous focusable component ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.awt.ruponent;&lt;br /&gt;
import java.awt.Container;&lt;br /&gt;
import java.awt.FlowLayout;&lt;br /&gt;
import java.awt.FocusTraversalPolicy;&lt;br /&gt;
import java.awt.KeyboardFocusManager;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) {&lt;br /&gt;
    JFrame frame = new JFrame();&lt;br /&gt;
    JButton component1 = new JButton(&amp;quot;1&amp;quot;);&lt;br /&gt;
    JButton component2 = new JButton(&amp;quot;2&amp;quot;);&lt;br /&gt;
    JButton component3 = new JButton(&amp;quot;3&amp;quot;);&lt;br /&gt;
    frame.setLayout(new FlowLayout());&lt;br /&gt;
    frame.add(component1);&lt;br /&gt;
    frame.add(component2);&lt;br /&gt;
    frame.add(component3);&lt;br /&gt;
    frame.pack();&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
    System.out.println(findPrevFocus().getName());&lt;br /&gt;
  }&lt;br /&gt;
  public static Component findPrevFocus() {&lt;br /&gt;
    Component c = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner();&lt;br /&gt;
    Container root = c.getFocusCycleRootAncestor();&lt;br /&gt;
    FocusTraversalPolicy policy = root.getFocusTraversalPolicy();&lt;br /&gt;
    Component prevFocus = policy.getComponentBefore(root, c);&lt;br /&gt;
    if (prevFocus == null) {&lt;br /&gt;
      prevFocus = policy.getDefaultComponent(root);&lt;br /&gt;
    }&lt;br /&gt;
    return prevFocus;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== JComponent.setFocusTraversalKeys(int arg0, Set&amp;lt;? extends AWTKeyStroke&amp;gt; arg1) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.awt.AWTKeyStroke;&lt;br /&gt;
import java.awt.KeyboardFocusManager;&lt;br /&gt;
import java.util.HashSet;&lt;br /&gt;
import java.util.Set;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.KeyStroke;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    JButton component = new JButton(&amp;quot;a&amp;quot;);&lt;br /&gt;
    Set&amp;lt;AWTKeyStroke&amp;gt; set = new HashSet&amp;lt;AWTKeyStroke&amp;gt;(component&lt;br /&gt;
        .getFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS));&lt;br /&gt;
    set.add(KeyStroke.getKeyStroke(&amp;quot;F2&amp;quot;));&lt;br /&gt;
    component.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, set);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.awt.AWTKeyStroke;&lt;br /&gt;
import java.awt.KeyboardFocusManager;&lt;br /&gt;
import java.util.HashSet;&lt;br /&gt;
import java.util.Set;&lt;br /&gt;
import javax.swing.KeyStroke;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    Set&amp;lt;AWTKeyStroke&amp;gt; set = new HashSet&amp;lt;AWTKeyStroke&amp;gt;(KeyboardFocusManager&lt;br /&gt;
        .getCurrentKeyboardFocusManager().getDefaultFocusTraversalKeys(&lt;br /&gt;
            KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS));&lt;br /&gt;
    set.add(KeyStroke.getKeyStroke(&amp;quot;F3&amp;quot;));&lt;br /&gt;
    KeyboardFocusManager.getCurrentKeyboardFocusManager().setDefaultFocusTraversalKeys(&lt;br /&gt;
        KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, set);&lt;br /&gt;
  }&lt;br /&gt;
} &lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.awt.KeyboardFocusManager;&lt;br /&gt;
import java.util.HashSet;&lt;br /&gt;
import java.util.Set;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.KeyStroke;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    JButton component = new JButton(&amp;quot;a&amp;quot;);&lt;br /&gt;
    Set set = new HashSet(component&lt;br /&gt;
        .getFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS));&lt;br /&gt;
    set.add(KeyStroke.getKeyStroke(&amp;quot;F2&amp;quot;));&lt;br /&gt;
    component.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, set);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== KeyboardFocusManager.getCurrentKeyboardFocusManager().getDefaultFocusTraversalKeys(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.awt.AWTKeyStroke;&lt;br /&gt;
import java.awt.KeyboardFocusManager;&lt;br /&gt;
import java.util.HashSet;&lt;br /&gt;
import java.util.Set;&lt;br /&gt;
import javax.swing.KeyStroke;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    Set&amp;lt;AWTKeyStroke&amp;gt; set = new HashSet&amp;lt;AWTKeyStroke&amp;gt;(KeyboardFocusManager&lt;br /&gt;
        .getCurrentKeyboardFocusManager().getDefaultFocusTraversalKeys(&lt;br /&gt;
            KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS));&lt;br /&gt;
    set.add(KeyStroke.getKeyStroke(&amp;quot;F3&amp;quot;));&lt;br /&gt;
    KeyboardFocusManager.getCurrentKeyboardFocusManager().setDefaultFocusTraversalKeys(&lt;br /&gt;
        KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, set);&lt;br /&gt;
  }&lt;br /&gt;
} &lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Listening to All Focus Changes Between Components and windows ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
import java.awt.ruponent;&lt;br /&gt;
import java.awt.KeyboardFocusManager;&lt;br /&gt;
import java.beans.PropertyChangeEvent;&lt;br /&gt;
import java.beans.PropertyChangeListener;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) {&lt;br /&gt;
    KeyboardFocusManager.getCurrentKeyboardFocusManager().addPropertyChangeListener(&lt;br /&gt;
        new FocusChangeListener());&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class FocusChangeListener implements PropertyChangeListener {&lt;br /&gt;
  public void propertyChange(PropertyChangeEvent evt) {&lt;br /&gt;
    Component oldComp = (Component) evt.getOldValue();&lt;br /&gt;
    Component newComp = (Component) evt.getNewValue();&lt;br /&gt;
    if (&amp;quot;focusOwner&amp;quot;.equals(evt.getPropertyName())) {&lt;br /&gt;
      if (oldComp == null) {&lt;br /&gt;
        System.out.println(newComp.getName());&lt;br /&gt;
      } else {&lt;br /&gt;
        System.out.println(oldComp.getName());&lt;br /&gt;
      }&lt;br /&gt;
    } else if (&amp;quot;focusedWindow&amp;quot;.equals(evt.getPropertyName())) {&lt;br /&gt;
      if (oldComp == null) {&lt;br /&gt;
        System.out.println(newComp.getName());&lt;br /&gt;
      } else {&lt;br /&gt;
        System.out.println(oldComp.getName());&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Modify a component: press space bar or F2 to move focus to next focusable component. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.awt.ruponent;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import javax.swing.AbstractAction;&lt;br /&gt;
import javax.swing.Action;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JComponent;&lt;br /&gt;
import javax.swing.KeyStroke;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) {&lt;br /&gt;
    JButton component = new JButton();&lt;br /&gt;
    NextFocusAction nextFocusAction = new NextFocusAction();&lt;br /&gt;
    component.getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke(&amp;quot;SPACE&amp;quot;),&lt;br /&gt;
        nextFocusAction.getValue(Action.NAME));&lt;br /&gt;
    component.getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke(&amp;quot;F2&amp;quot;),&lt;br /&gt;
        nextFocusAction.getValue(Action.NAME));&lt;br /&gt;
    component.getActionMap().put(nextFocusAction.getValue(Action.NAME), nextFocusAction);&lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class NextFocusAction extends AbstractAction {&lt;br /&gt;
  public NextFocusAction() {&lt;br /&gt;
    super(&amp;quot;Move Focus Forwards&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  public void actionPerformed(ActionEvent evt) {&lt;br /&gt;
    ((Component) evt.getSource()).transferFocus();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Null is returned if none of the components in this application has the focus ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.awt.ruponent;&lt;br /&gt;
import java.awt.KeyboardFocusManager;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main() {&lt;br /&gt;
    Component compFocusOwner = KeyboardFocusManager.getCurrentKeyboardFocusManager()&lt;br /&gt;
        .getFocusOwner();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Null is returned if none of the windows in this application has the focus ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.awt.KeyboardFocusManager;&lt;br /&gt;
import java.awt.Window;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main() {&lt;br /&gt;
&lt;br /&gt;
    Window windowFocusOwner =&lt;br /&gt;
    KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusedWindow();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Press shift space or shift F2 to move the focus to the previous focusable component. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.awt.ruponent;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import javax.swing.AbstractAction;&lt;br /&gt;
import javax.swing.Action;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JComponent;&lt;br /&gt;
import javax.swing.KeyStroke;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) {&lt;br /&gt;
    JButton component = new JButton();&lt;br /&gt;
    PrevFocusAction prevFocusAction = new PrevFocusAction();&lt;br /&gt;
    component.getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke(&amp;quot;shift F2&amp;quot;),&lt;br /&gt;
        prevFocusAction.getValue(Action.NAME));&lt;br /&gt;
    component.getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke(&amp;quot;shift SPACE&amp;quot;),&lt;br /&gt;
        prevFocusAction.getValue(Action.NAME));&lt;br /&gt;
    component.getActionMap().put(prevFocusAction.getValue(Action.NAME), prevFocusAction);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class PrevFocusAction extends AbstractAction {&lt;br /&gt;
  PrevFocusAction() {&lt;br /&gt;
    super(&amp;quot;Move Focus Backwards&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  public void actionPerformed(ActionEvent evt) {&lt;br /&gt;
    ((Component) evt.getSource()).transferFocusBackward();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Preventing a Component from Gaining the Focus ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    JFrame frame = new JFrame();&lt;br /&gt;
    frame.setFocusable(false);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Remove all backward focus traversal keys for the application ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
import java.awt.AWTKeyStroke;&lt;br /&gt;
import java.awt.KeyboardFocusManager;&lt;br /&gt;
import java.util.HashSet;&lt;br /&gt;
import java.util.Set;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    Set&amp;lt;AWTKeyStroke&amp;gt; set = new HashSet&amp;lt;AWTKeyStroke&amp;gt;();&lt;br /&gt;
 &lt;br /&gt;
    KeyboardFocusManager.getCurrentKeyboardFocusManager().setDefaultFocusTraversalKeys(&lt;br /&gt;
        KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, set);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Remove all forward focus traversal keys for the application ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.awt.AWTKeyStroke;&lt;br /&gt;
import java.awt.KeyboardFocusManager;&lt;br /&gt;
import java.util.HashSet;&lt;br /&gt;
import java.util.Set;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    Set&amp;lt;AWTKeyStroke&amp;gt; set = new HashSet&amp;lt;AWTKeyStroke&amp;gt;();&lt;br /&gt;
    KeyboardFocusManager.getCurrentKeyboardFocusManager().setDefaultFocusTraversalKeys(&lt;br /&gt;
        KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, set);&lt;br /&gt;
 &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Removing the Focus from the Application ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.awt.KeyboardFocusManager;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    KeyboardFocusManager.getCurrentKeyboardFocusManager().clearGlobalFocusOwner();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Setting Focus Traversal Keys for the Entire Application ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.awt.AWTKeyStroke;&lt;br /&gt;
import java.awt.KeyboardFocusManager;&lt;br /&gt;
import java.util.HashSet;&lt;br /&gt;
import java.util.Set;&lt;br /&gt;
import javax.swing.KeyStroke;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    Set&amp;lt;AWTKeyStroke&amp;gt; set = new HashSet&amp;lt;AWTKeyStroke&amp;gt;(KeyboardFocusManager&lt;br /&gt;
        .getCurrentKeyboardFocusManager().getDefaultFocusTraversalKeys(&lt;br /&gt;
            KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS));&lt;br /&gt;
    set.add(KeyStroke.getKeyStroke(&amp;quot;F2&amp;quot;));&lt;br /&gt;
    KeyboardFocusManager.getCurrentKeyboardFocusManager().setDefaultFocusTraversalKeys(&lt;br /&gt;
        KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, set);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Setting Focus Traversal Keys in a Component ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.awt.KeyboardFocusManager;&lt;br /&gt;
import java.util.HashSet;&lt;br /&gt;
import java.util.Set;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.KeyStroke;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    JButton component = new JButton(&amp;quot;a&amp;quot;);&lt;br /&gt;
    Set set = new HashSet(component&lt;br /&gt;
        .getFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS));&lt;br /&gt;
    set.add(KeyStroke.getKeyStroke(&amp;quot;F2&amp;quot;));&lt;br /&gt;
    component.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, set);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Setting the Initial Focused Component in a Window ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.awt.ruponent;&lt;br /&gt;
import java.awt.FlowLayout;&lt;br /&gt;
import java.awt.Window;&lt;br /&gt;
import java.awt.event.WindowAdapter;&lt;br /&gt;
import java.awt.event.WindowEvent;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    JFrame frame = new JFrame();&lt;br /&gt;
    JButton component1 = new JButton(&amp;quot;1&amp;quot;);&lt;br /&gt;
    JButton component2 = new JButton(&amp;quot;2&amp;quot;);&lt;br /&gt;
    JButton component3 = new JButton(&amp;quot;3&amp;quot;);&lt;br /&gt;
    frame.setLayout(new FlowLayout());&lt;br /&gt;
    frame.add(component1);&lt;br /&gt;
    frame.add(component2);&lt;br /&gt;
    frame.add(component3);&lt;br /&gt;
    InitialFocusSetter.setInitialFocus(frame, component2);&lt;br /&gt;
    frame.pack();&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class InitialFocusSetter {&lt;br /&gt;
  public static void setInitialFocus(Window w, Component c) {&lt;br /&gt;
    w.addWindowListener(new FocusSetter(c));&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class FocusSetter extends WindowAdapter {&lt;br /&gt;
  Component initComp;&lt;br /&gt;
  FocusSetter(Component c) {&lt;br /&gt;
    initComp = c;&lt;br /&gt;
  }&lt;br /&gt;
  public void windowOpened(WindowEvent e) {&lt;br /&gt;
    initComp.requestFocus();&lt;br /&gt;
    e.getWindow().removeWindowListener(this);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Use Focus Events in Swing ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
 &lt;br /&gt;
import java.awt.Dimension;&lt;br /&gt;
import java.awt.event.FocusEvent;&lt;br /&gt;
import java.awt.event.FocusListener;&lt;br /&gt;
import java.util.Vector;&lt;br /&gt;
import javax.swing.BorderFactory;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JComboBox;&lt;br /&gt;
import javax.swing.JComponent;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JLabel;&lt;br /&gt;
import javax.swing.JList;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
import javax.swing.JScrollPane;&lt;br /&gt;
import javax.swing.JTextField;&lt;br /&gt;
public class Main extends JPanel implements FocusListener {&lt;br /&gt;
  public Main() {&lt;br /&gt;
    JTextField textField = new JTextField(&amp;quot;A TextField&amp;quot;);&lt;br /&gt;
    textField.addFocusListener(this);&lt;br /&gt;
    JLabel label = new JLabel(&amp;quot;A Label&amp;quot;);&lt;br /&gt;
    label.addFocusListener(this);&lt;br /&gt;
    add(label);&lt;br /&gt;
    String comboPrefix = &amp;quot;ComboBox Item #&amp;quot;;&lt;br /&gt;
    final int numItems = 15;&lt;br /&gt;
    Vector vector = new Vector(numItems);&lt;br /&gt;
    for (int i = 0; i &amp;lt; numItems; i++) {&lt;br /&gt;
      vector.addElement(comboPrefix + i);&lt;br /&gt;
    }&lt;br /&gt;
    JComboBox comboBox = new JComboBox(vector);&lt;br /&gt;
    comboBox.addFocusListener(this);&lt;br /&gt;
    add(comboBox);&lt;br /&gt;
    JButton button = new JButton(&amp;quot;A Button&amp;quot;);&lt;br /&gt;
    button.addFocusListener(this);&lt;br /&gt;
    add(button);&lt;br /&gt;
    String listPrefix = &amp;quot;List Item #&amp;quot;;&lt;br /&gt;
    Vector listVector = new Vector(numItems);&lt;br /&gt;
    for (int i = 0; i &amp;lt; numItems; i++) {&lt;br /&gt;
      listVector.addElement(listPrefix + i);&lt;br /&gt;
    }&lt;br /&gt;
    JList list = new JList(listVector);&lt;br /&gt;
    list.setSelectedIndex(1); &lt;br /&gt;
    list.addFocusListener(this);&lt;br /&gt;
    JScrollPane listScrollPane = new JScrollPane(list);&lt;br /&gt;
    listScrollPane.getVerticalScrollBar().setFocusable(false);&lt;br /&gt;
    listScrollPane.getHorizontalScrollBar().setFocusable(false);&lt;br /&gt;
    add(listScrollPane);&lt;br /&gt;
    setPreferredSize(new Dimension(450, 450));&lt;br /&gt;
    setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));&lt;br /&gt;
  }&lt;br /&gt;
  void displayMessage(String prefix, FocusEvent e) {&lt;br /&gt;
    System.out.println(prefix&lt;br /&gt;
        + (e.isTemporary() ? &amp;quot; (temporary):&amp;quot; : &amp;quot;:&amp;quot;)&lt;br /&gt;
        + e.getComponent().getClass().getName()&lt;br /&gt;
        + &amp;quot;; Opposite component: &amp;quot;&lt;br /&gt;
        + (e.getOppositeComponent() != null ? e.getOppositeComponent().getClass().getName()&lt;br /&gt;
            : &amp;quot;null&amp;quot;) );&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;FocusEventDemo&amp;quot;);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    JComponent newContentPane = new Main();&lt;br /&gt;
    newContentPane.setOpaque(true); // content panes must be opaque&lt;br /&gt;
    frame.setContentPane(newContentPane);&lt;br /&gt;
    frame.pack();&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
  public void focusGained(FocusEvent e) {&lt;br /&gt;
    displayMessage(&amp;quot;Focus gained&amp;quot;, e);&lt;br /&gt;
}&lt;br /&gt;
public void focusLost(FocusEvent e) {&lt;br /&gt;
    displayMessage(&amp;quot;Focus lost&amp;quot;, e);&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Validating a JTextField When Permanently Losing the Focus ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.awt.FlowLayout;&lt;br /&gt;
import java.awt.event.FocusAdapter;&lt;br /&gt;
import java.awt.event.FocusEvent;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JTextField;&lt;br /&gt;
import javax.swing.text.JTextComponent;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    JTextField component = new JTextField(10);&lt;br /&gt;
    JTextField component1 = new JTextField(10);&lt;br /&gt;
    component.addFocusListener(new MyFocusListener());&lt;br /&gt;
    component1.addFocusListener(new MyFocusListener());&lt;br /&gt;
    JFrame f = new JFrame();&lt;br /&gt;
    f.setLayout(new FlowLayout());&lt;br /&gt;
    f.add(component1);&lt;br /&gt;
    f.add(component);&lt;br /&gt;
    f.pack();&lt;br /&gt;
    f.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MyFocusListener extends FocusAdapter {&lt;br /&gt;
  boolean showingDialog = false;&lt;br /&gt;
  public void focusGained(FocusEvent evt) {&lt;br /&gt;
    final JTextComponent c = (JTextComponent) evt.getSource();&lt;br /&gt;
    String s = c.getText();&lt;br /&gt;
    for (int i = 0; i &amp;lt; s.length(); i++) {&lt;br /&gt;
      if (!Character.isDigit(s.charAt(i))) {&lt;br /&gt;
        c.setSelectionStart(i);&lt;br /&gt;
        c.setSelectionEnd(i);&lt;br /&gt;
        break;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public void focusLost(FocusEvent evt) {&lt;br /&gt;
    final JTextComponent c = (JTextComponent) evt.getSource();&lt;br /&gt;
    String s = c.getText();&lt;br /&gt;
    if (evt.isTemporary()) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    for (int i = 0; i &amp;lt; s.length(); i++) {&lt;br /&gt;
      if (!Character.isDigit(s.charAt(i))) {&lt;br /&gt;
        System.out.println(&amp;quot;must only contain digits&amp;quot;);&lt;br /&gt;
        c.requestFocus();&lt;br /&gt;
        break;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>