<?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_by_API%2Fjava.awt%2FKeyboardFocusManager</id>
		<title>Java by API/java.awt/KeyboardFocusManager - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_by_API%2Fjava.awt%2FKeyboardFocusManager"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_by_API/java.awt/KeyboardFocusManager&amp;action=history"/>
		<updated>2026-04-26T14:21:41Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_by_API/java.awt/KeyboardFocusManager&amp;diff=1121&amp;oldid=prev</id>
		<title> в 17:43, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_by_API/java.awt/KeyboardFocusManager&amp;diff=1121&amp;oldid=prev"/>
				<updated>2010-05-31T17:43:48Z</updated>
		
		<summary type="html">&lt;p&gt;&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;Версия 17:43, 31 мая 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>
			</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_by_API/java.awt/KeyboardFocusManager&amp;diff=1122&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_by_API/java.awt/KeyboardFocusManager&amp;diff=1122&amp;oldid=prev"/>
				<updated>2010-05-31T14:23:49Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== KeyboardFocusManager: addPropertyChangeListener(PropertyChangeListener listener) ==&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;
== 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;
  &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: clearGlobalFocusOwner() ==&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.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;
  &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: focusNextComponent() ==&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.GridLayout;&lt;br /&gt;
import java.awt.KeyboardFocusManager;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import java.awt.event.MouseAdapter;&lt;br /&gt;
import java.awt.event.MouseEvent;&lt;br /&gt;
import java.awt.event.MouseListener;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;Focus Sample&amp;quot;);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    ActionListener actionListener = new ActionFocusMover();&lt;br /&gt;
    MouseListener mouseListener = new MouseEnterFocusMover();&lt;br /&gt;
    frame.setLayout(new GridLayout(3, 3));&lt;br /&gt;
    for (int i = 1; i &amp;lt; 10; i++) {&lt;br /&gt;
      JButton button = new JButton(Integer.toString(i));&lt;br /&gt;
      button.addActionListener(actionListener);&lt;br /&gt;
      button.addMouseListener(mouseListener);&lt;br /&gt;
      if ((i % 2) != 0) {&lt;br /&gt;
        button.setFocusable(false);&lt;br /&gt;
      }&lt;br /&gt;
      frame.add(button);&lt;br /&gt;
    }&lt;br /&gt;
    frame.setSize(300, 200);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class ActionFocusMover implements ActionListener {&lt;br /&gt;
  public void actionPerformed(ActionEvent actionEvent) {&lt;br /&gt;
    KeyboardFocusManager manager = KeyboardFocusManager&lt;br /&gt;
        .getCurrentKeyboardFocusManager();&lt;br /&gt;
    manager.focusNextComponent();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MouseEnterFocusMover extends MouseAdapter {&lt;br /&gt;
  public void mouseEntered(MouseEvent mouseEvent) {&lt;br /&gt;
    Component component = mouseEvent.getComponent();&lt;br /&gt;
    if (!component.hasFocus()) {&lt;br /&gt;
      component.requestFocusInWindow();&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;
== 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;
&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;
  &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: getFocusedWindow() ==&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.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;
  &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: getFocusOwner() ==&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.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;
  &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.UP_CYCLE_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.BorderLayout;&lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import java.awt.Container;&lt;br /&gt;
import java.awt.Dimension;&lt;br /&gt;
import java.awt.GridLayout;&lt;br /&gt;
import java.awt.KeyboardFocusManager;&lt;br /&gt;
import java.awt.event.KeyEvent;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JDesktopPane;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JInternalFrame;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
public class MainClass extends JFrame {&lt;br /&gt;
  public MainClass() {&lt;br /&gt;
    super(&amp;quot;Focus Example&amp;quot;);&lt;br /&gt;
    setDefaultCloseOperation(EXIT_ON_CLOSE);&lt;br /&gt;
    MyPanel mypanel = new MyPanel();&lt;br /&gt;
    JButton button1 = new JButton(&amp;quot;One&amp;quot;);&lt;br /&gt;
    JButton button2 = new JButton(&amp;quot;Two&amp;quot;);&lt;br /&gt;
    JButton button3 = new JButton(&amp;quot;Three&amp;quot;);&lt;br /&gt;
    JButton button4 = new JButton(&amp;quot;Four&amp;quot;);&lt;br /&gt;
    JButton button5 = new MyButton(&amp;quot;Five*&amp;quot;);&lt;br /&gt;
    JButton button6 = new MyButton(&amp;quot;Six*&amp;quot;);&lt;br /&gt;
    JButton button7 = new JButton(&amp;quot;Seven&amp;quot;);&lt;br /&gt;
    mypanel.add(button2);&lt;br /&gt;
    mypanel.add(button3);&lt;br /&gt;
    JInternalFrame frame1 = new JInternalFrame(&amp;quot;Internal Frame 1&amp;quot;, true, true, true, true);&lt;br /&gt;
    frame1.setBackground(Color.lightGray);&lt;br /&gt;
    frame1.getContentPane().setLayout(new GridLayout(2, 3));&lt;br /&gt;
    frame1.setSize(300, 200);&lt;br /&gt;
    frame1.getContentPane().add(button1);&lt;br /&gt;
    frame1.getContentPane().add(mypanel);&lt;br /&gt;
    frame1.getContentPane().add(button4);&lt;br /&gt;
    frame1.getContentPane().add(button5);&lt;br /&gt;
    frame1.getContentPane().add(button6);&lt;br /&gt;
    frame1.getContentPane().add(button7);&lt;br /&gt;
    JDesktopPane desktop = new JDesktopPane();&lt;br /&gt;
    desktop.add(frame1, new Integer(1));&lt;br /&gt;
    desktop.setOpaque(true);&lt;br /&gt;
    // Now set up the user interface window.&lt;br /&gt;
    Container contentPane = getContentPane();&lt;br /&gt;
    contentPane.add(desktop, BorderLayout.CENTER);&lt;br /&gt;
    setSize(new Dimension(400, 300));&lt;br /&gt;
    frame1.setVisible(true);&lt;br /&gt;
    setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    new MainClass();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MyButton extends JButton {&lt;br /&gt;
  public MyButton(String s) {&lt;br /&gt;
    super(s);&lt;br /&gt;
  }&lt;br /&gt;
  public boolean isFocusable() {&lt;br /&gt;
    return false;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MyPanel extends JPanel {&lt;br /&gt;
  public MyPanel() {&lt;br /&gt;
    super(true);&lt;br /&gt;
    java.util.Set upKeys = new java.util.HashSet(1);&lt;br /&gt;
    upKeys.add(AWTKeyStroke.getAWTKeyStroke(KeyEvent.VK_UP, 0));&lt;br /&gt;
    setFocusTraversalKeys(KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS, upKeys);&lt;br /&gt;
  }&lt;br /&gt;
  public boolean isFocusCycleRoot() {&lt;br /&gt;
    return true;&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>
		<author><name>Admin</name></author>	</entry>

	</feed>