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