1 /*
2  * Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
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
7  * published by the Free Software Foundation.
8  *
9  * This code is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12  * version 2 for more details (a copy is included in the LICENSE file that
13  * accompanied this code).
14  *
15  * You should have received a copy of the GNU General Public License version
16  * 2 along with this work; if not, write to the Free Software Foundation,
17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18  *
19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20  * or visit www.oracle.com if you need additional information or have any
21  * questions.
22  */
23 
24 /*
25  * @test
26  * @key headful
27  * @bug 4625203
28  * @summary 1. install two input locales on Windows
29  *          2. run this application
30  *          3. press Alt+Shift to switch to another input locale
31  *          4. push jButton1 button
32  *          5. If the input locale does not change, it is SUCCESS.
33  *             If the input locale changes to the default one, it is FAILURE.
34  */
35 
36 import java.awt.*;
37 import javax.swing.*;
38 import java.awt.event.*;
39 
40 public class bug4625203 extends JFrame {
41     JTextField jTextField1 = new JTextField();
42     JButton jButton1 = new JButton();
43     java.util.Locale locale;
44     public int n = 0;
45 
bug4625203()46     public bug4625203() {
47         try {
48             jbInit();
49         } catch(Exception e) {
50             e.printStackTrace();
51         }
52     }
53 
main(String[] args)54     public static void main(String[] args) {
55         bug4625203 frame1 = new bug4625203();
56         frame1.setSize(400,300);
57         frame1.setVisible(true);
58     }
59 
jbInit()60     private void jbInit() throws Exception {
61         jTextField1.setText("jTextField1");
62         jButton1.setText("jButton1");
63         jButton1.addActionListener(new java.awt.event.ActionListener() {
64             public void actionPerformed(ActionEvent e) {
65                 jButton1_actionPerformed(e);
66             }
67         });
68         this.addWindowListener(new java.awt.event.WindowAdapter() {
69             public void windowClosing(WindowEvent e) {
70                 this_windowClosing(e);
71             }
72         });
73         this.getContentPane().add(jTextField1, BorderLayout.CENTER);
74         this.getContentPane().add(jButton1, BorderLayout.SOUTH);
75     }
76 
jButton1_actionPerformed(ActionEvent e)77     void jButton1_actionPerformed(ActionEvent e) {
78         locale = ((JButton) e.getSource()).getInputContext().getLocale();
79         System.out.println("locale" + n + ":" + locale.toString());
80         bug4625203 frame2 = new bug4625203();
81         frame2.n = n + 1;
82         frame2.setSize(400,300);
83         frame2.setTitle("test:" +n);
84         frame2.setVisible(true);
85     }
86 
this_windowClosing(WindowEvent e)87     void this_windowClosing(WindowEvent e) {
88         System.exit(0);
89     }
90 }
91