./test/java/awt/KeyboardFocusmanager/DefaultPolicyChange/DefaultPolicyChange_Swing.java
Print this page
rev 6162 : 8004693: TEST_BUG: java/awt/KeyboardFocusmanager/DefaultPolicyChange/DefaultPolicyChange_Swing.java fails
@@ -1,8 +1,31 @@
/*
+ * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
@test
- @bug 6741526
+ @bug 6741526 8004693
@summary KeyboardFocusManager.setDefaultFocusTraversalPolicy(FocusTraversalPolicy) affects created components
@library ../../regtesthelpers
@build Sysout
@author Andrei Dmitriev : area=awt-focus
@run main DefaultPolicyChange_Swing
@@ -10,25 +33,24 @@
import java.awt.*;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import test.java.awt.regtesthelpers.Sysout;
+import sun.awt.SunToolkit;
public class DefaultPolicyChange_Swing {
public static void main(String []s) {
EventQueue.invokeLater(new Runnable(){
- public void run (){
+ public void run() {
DefaultPolicyChange_Swing.runTestSwing();
}
});
+ ((SunToolkit) SunToolkit.getDefaultToolkit()).realSync();
}
private static void runTestSwing(){
KeyboardFocusManager currentKFM = KeyboardFocusManager.getCurrentKeyboardFocusManager();
- FocusTraversalPolicy defaultFTP = currentKFM.getDefaultFocusTraversalPolicy();
- ContainerOrderFocusTraversalPolicy newFTP = new ContainerOrderFocusTraversalPolicy();
-
JFrame jf = new JFrame("Test1");
JWindow jw = new JWindow(jf);
JDialog jd = new JDialog(jf);
JPanel jp1 = new JPanel();
JButton jb1 = new JButton("jb1");
@@ -46,24 +68,31 @@
!(jd.getFocusTraversalPolicy() instanceof LayoutFocusTraversalPolicy))
{
throw new RuntimeException("Failure! Swing toplevel must have LayoutFocusTraversalPolicy installed");
}
+ FocusTraversalPolicy[] defaultFTP = {jf.getFocusTraversalPolicy(),
+ jw.getFocusTraversalPolicy(), jd.getFocusTraversalPolicy()};
+
jf.setVisible(true);
System.out.println("Now will set another policy.");
+ ContainerOrderFocusTraversalPolicy newFTP = new ContainerOrderFocusTraversalPolicy();
currentKFM.setDefaultFocusTraversalPolicy(newFTP);
- FocusTraversalPolicy resultFTP = jw.getFocusTraversalPolicy();
+ FocusTraversalPolicy[] resultFTP = {jf.getFocusTraversalPolicy(),
+ jw.getFocusTraversalPolicy(), jd.getFocusTraversalPolicy()};
System.out.println("FTP current on jf= " + jf.getFocusTraversalPolicy());
System.out.println("FTP current on jw= " + jw.getFocusTraversalPolicy());
System.out.println("FTP current on jd= " + jd.getFocusTraversalPolicy());
- if (!resultFTP.equals(defaultFTP)) {
+ for (int i=0; i < 3; i++) {
+ if (!resultFTP[i].equals(defaultFTP[i])) {
Sysout.println("Failure! FocusTraversalPolicy should not change");
- Sysout.println("Was: " + defaultFTP);
- Sysout.println("Become: " + resultFTP);
+ Sysout.println("Was: " + defaultFTP[i]);
+ Sysout.println("Become: " + resultFTP[i]);
throw new RuntimeException("Failure! FocusTraversalPolicy should not change");
}
}
+ }
}