test/java/awt/Focus/8073453/SwingFocusTransitionTest.java

Print this page

        

*** 26,51 **** * @summary Focus doesn't move when pressing Shift + Tab keys * @author Dmitry Markov * @compile SwingFocusTransitionTest.java * @run main/othervm SwingFocusTransitionTest */ - import sun.awt.SunToolkit; import javax.swing.*; import java.awt.*; import java.awt.event.KeyEvent; public class SwingFocusTransitionTest { - private static SunToolkit toolkit; private static Robot robot; private static JFrame frame; private static JTextField textField; private static JButton button; public static void main(String[] args) throws Exception { - toolkit = (SunToolkit)Toolkit.getDefaultToolkit(); robot = new Robot(); robot.setAutoDelay(50); try { SwingUtilities.invokeAndWait(new Runnable() { --- 26,48 ----
*** 53,85 **** public void run() { createAndShowGUI(); } }); ! toolkit.realSync(); checkFocusOwner(textField); robot.keyPress(KeyEvent.VK_TAB); robot.keyRelease(KeyEvent.VK_TAB); ! toolkit.realSync(); checkFocusOwner(button); robot.keyPress(KeyEvent.VK_SHIFT); robot.keyPress(KeyEvent.VK_TAB); robot.keyRelease(KeyEvent.VK_TAB); robot.keyRelease(KeyEvent.VK_SHIFT); ! toolkit.realSync(); checkFocusOwner(textField); robot.keyPress(KeyEvent.VK_SHIFT); robot.keyPress(KeyEvent.VK_TAB); robot.keyRelease(KeyEvent.VK_TAB); robot.keyRelease(KeyEvent.VK_SHIFT); ! toolkit.realSync(); checkFocusOwner(button); } finally { SwingUtilities.invokeLater(new Runnable() { @Override --- 50,82 ---- public void run() { createAndShowGUI(); } }); ! robot.waitForIdle(); checkFocusOwner(textField); robot.keyPress(KeyEvent.VK_TAB); robot.keyRelease(KeyEvent.VK_TAB); ! robot.waitForIdle(); checkFocusOwner(button); robot.keyPress(KeyEvent.VK_SHIFT); robot.keyPress(KeyEvent.VK_TAB); robot.keyRelease(KeyEvent.VK_TAB); robot.keyRelease(KeyEvent.VK_SHIFT); ! robot.waitForIdle(); checkFocusOwner(textField); robot.keyPress(KeyEvent.VK_SHIFT); robot.keyPress(KeyEvent.VK_TAB); robot.keyRelease(KeyEvent.VK_TAB); robot.keyRelease(KeyEvent.VK_SHIFT); ! robot.waitForIdle(); checkFocusOwner(button); } finally { SwingUtilities.invokeLater(new Runnable() { @Override