jdk/test/java/awt/KeyboardFocusmanager/DefaultPolicyChange/DefaultPolicyChange_Swing.java
changeset 42203 64f91947fa52
parent 23010 6dadb192ad81
child 46151 5fa789776f7d
equal deleted inserted replaced
42202:31974f43ef4a 42203:64f91947fa52
     1 /*
     1 /*
     2  * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
    21  * questions.
    21  * questions.
    22  */
    22  */
    23 
    23 
    24 /*
    24 /*
    25   @test
    25   @test
    26   @bug 6741526
    26   @bug 6741526 8004693
    27   @summary KeyboardFocusManager.setDefaultFocusTraversalPolicy(FocusTraversalPolicy) affects created components
    27   @summary KeyboardFocusManager.setDefaultFocusTraversalPolicy(FocusTraversalPolicy) affects created components
    28   @library ../../regtesthelpers
       
    29   @build Sysout
       
    30   @author Andrei Dmitriev : area=awt-focus
    28   @author Andrei Dmitriev : area=awt-focus
    31   @run main DefaultPolicyChange_Swing
    29   @run main DefaultPolicyChange_Swing
    32 */
    30 */
    33 
    31 
    34 import java.awt.*;
    32 import java.awt.*;
       
    33 
    35 import javax.swing.*;
    34 import javax.swing.*;
    36 import javax.swing.table.DefaultTableModel;
    35 import javax.swing.table.DefaultTableModel;
    37 import test.java.awt.regtesthelpers.Sysout;
       
    38 
    36 
    39 public class DefaultPolicyChange_Swing {
    37 public class DefaultPolicyChange_Swing {
    40     public static void main(String []s) {
    38 
    41         EventQueue.invokeLater(new Runnable(){
    39     public static void main(final String[] s) throws Exception {
    42             public void run (){
    40         EventQueue.invokeAndWait(DefaultPolicyChange_Swing::runTestSwing);
    43                 DefaultPolicyChange_Swing.runTestSwing();
       
    44             }
       
    45         });
       
    46     }
    41     }
       
    42 
    47     private static void runTestSwing(){
    43     private static void runTestSwing(){
    48         KeyboardFocusManager currentKFM = KeyboardFocusManager.getCurrentKeyboardFocusManager();
    44         KeyboardFocusManager currentKFM = KeyboardFocusManager.getCurrentKeyboardFocusManager();
    49         FocusTraversalPolicy defaultFTP = currentKFM.getDefaultFocusTraversalPolicy();
       
    50         ContainerOrderFocusTraversalPolicy newFTP = new ContainerOrderFocusTraversalPolicy();
       
    51 
       
    52 
    45 
    53         JFrame jf = new JFrame("Test1");
    46         JFrame jf = new JFrame("Test1");
    54         JWindow jw = new JWindow(jf);
    47         JWindow jw = new JWindow(jf);
    55         JDialog jd = new JDialog(jf);
    48         JDialog jd = new JDialog(jf);
    56         JPanel jp1 = new JPanel();
    49         JPanel jp1 = new JPanel();
    69             !(jd.getFocusTraversalPolicy() instanceof LayoutFocusTraversalPolicy))
    62             !(jd.getFocusTraversalPolicy() instanceof LayoutFocusTraversalPolicy))
    70         {
    63         {
    71             throw new RuntimeException("Failure! Swing toplevel must have LayoutFocusTraversalPolicy installed");
    64             throw new RuntimeException("Failure! Swing toplevel must have LayoutFocusTraversalPolicy installed");
    72         }
    65         }
    73 
    66 
       
    67         FocusTraversalPolicy[] defaultFTP = {
       
    68                 jf.getFocusTraversalPolicy(), jw.getFocusTraversalPolicy(),
       
    69                 jd.getFocusTraversalPolicy()
       
    70         };
       
    71 
    74         jf.setVisible(true);
    72         jf.setVisible(true);
    75 
    73 
    76         System.out.println("Now will set another policy.");
    74         System.out.println("Now will set another policy.");
       
    75         ContainerOrderFocusTraversalPolicy newFTP = new ContainerOrderFocusTraversalPolicy();
    77         currentKFM.setDefaultFocusTraversalPolicy(newFTP);
    76         currentKFM.setDefaultFocusTraversalPolicy(newFTP);
    78 
    77 
    79         FocusTraversalPolicy resultFTP = jw.getFocusTraversalPolicy();
    78         FocusTraversalPolicy[] resultFTP = {
       
    79                 jf.getFocusTraversalPolicy(), jw.getFocusTraversalPolicy(),
       
    80                 jd.getFocusTraversalPolicy()
       
    81         };
    80 
    82 
    81         System.out.println("FTP current on jf= " + jf.getFocusTraversalPolicy());
    83         System.out.println("FTP current on jf= " + jf.getFocusTraversalPolicy());
    82         System.out.println("FTP current on jw= " + jw.getFocusTraversalPolicy());
    84         System.out.println("FTP current on jw= " + jw.getFocusTraversalPolicy());
    83         System.out.println("FTP current on jd= " + jd.getFocusTraversalPolicy());
    85         System.out.println("FTP current on jd= " + jd.getFocusTraversalPolicy());
    84 
    86 
    85         if (!resultFTP.equals(defaultFTP)) {
    87         jf.dispose();
    86             Sysout.println("Failure! FocusTraversalPolicy should not change");
    88 
    87             Sysout.println("Was: " + defaultFTP);
    89         for (int i=0; i < 3; i++) {
    88             Sysout.println("Become: " + resultFTP);
    90             if (!resultFTP[i].equals(defaultFTP[i])) {
    89             throw new RuntimeException("Failure! FocusTraversalPolicy should not change");
    91                 System.out.println("Failure! FocusTraversalPolicy should not change");
       
    92                 System.out.println("Was: " + defaultFTP[i]);
       
    93                 System.out.println("Become: " + resultFTP[i]);
       
    94                 throw new RuntimeException("Failure! FocusTraversalPolicy should not change");
       
    95             }
    90         }
    96         }
    91     }
    97     }
    92 }
    98 }