1 /*
   2   @test
   3   @bug 6741526
   4   @summary KeyboardFocusManager.setDefaultFocusTraversalPolicy(FocusTraversalPolicy) affects created components
   5   @library ../../regtesthelpers
   6   @build Sysout
   7   @author Andrei Dmitriev : area=awt-focus
   8   @run main DefaultPolicyChange_AWT
   9 */
  10 
  11 import java.awt.*;
  12 import test.java.awt.regtesthelpers.Sysout;
  13 
  14 public class DefaultPolicyChange_AWT {
  15     public static void main(String []s) {
  16         DefaultPolicyChange_AWT.runTestAWT();
  17     }
  18 
  19     private static void runTestAWT(){
  20         KeyboardFocusManager currentKFM = KeyboardFocusManager.getCurrentKeyboardFocusManager();
  21         FocusTraversalPolicy defaultFTP = currentKFM.getDefaultFocusTraversalPolicy();
  22         ContainerOrderFocusTraversalPolicy newFTP = new ContainerOrderFocusTraversalPolicy();
  23 
  24         Frame frame = new Frame();
  25         Window window = new Window(frame);
  26 
  27         FocusTraversalPolicy resultFTP = window.getFocusTraversalPolicy();
  28         Sysout.println("FocusTraversalPolicy on window = " + resultFTP);
  29         /**
  30          * Note: this call doesn't affect already created components as they have
  31          * their policy initialized. Only new components will use this policy as
  32          * their default policy.
  33          **/
  34         Sysout.println("Now will set another policy.");
  35         currentKFM.setDefaultFocusTraversalPolicy(newFTP);
  36         resultFTP = window.getFocusTraversalPolicy();
  37         if (!resultFTP.equals(defaultFTP)) {
  38             Sysout.println("Failure! FocusTraversalPolicy should not change");
  39             Sysout.println("Was: " + defaultFTP);
  40             Sysout.println("Become: " + resultFTP);
  41             throw new RuntimeException("Failure! FocusTraversalPolicy should not change");
  42         }
  43     }
  44 }