1 /*
2  * Copyright (c) 2007, 2015, 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 import javax.swing.*;
25 import java.awt.*;
26 import java.util.Locale;
27 
28 /*
29  * @test
30  * @summary Check that Box constructors and methods do not throw
31  *          unexpected exceptions in headless mode
32  * @run main/othervm -Djava.awt.headless=true HeadlessBox
33  */
34 
35 public class HeadlessBox {
36 
main(String args[])37     public static void main(String args[]) {
38         for (Box b : new Box[]{new Box(BoxLayout.X_AXIS), new Box(BoxLayout.Y_AXIS)}) {
39             b = Box.createHorizontalBox();
40             b = Box.createVerticalBox();
41             b = new Box(BoxLayout.Y_AXIS);
42             b.getAccessibleContext();
43             b.requestFocus();
44             b.requestFocusInWindow();
45             b.getPreferredSize();
46             b.getMaximumSize();
47             b.getMinimumSize();
48             b.contains(1, 2);
49             Component c1 = b.add(new Component() {
50             });
51             Component c2 = b.add(new Component() {
52             });
53             Component c3 = b.add(new Component() {
54             });
55             b.getComponentCount();
56             b.countComponents();
57             b.getComponent(1);
58             b.getComponent(2);
59             Component[] cs = b.getComponents();
60 
61             boolean exceptions = false;
62             try {
63                 b.setLayout(new BoxLayout(new Container(), BoxLayout.Y_AXIS));
64             } catch (AWTError e) {
65                 exceptions = true;
66             }
67             if (!exceptions)
68                 throw new RuntimeException("AWTError did not occur when expected");
69 
70             exceptions = false;
71             try {
72                 b.setLayout(new BoxLayout(new Container(), BoxLayout.X_AXIS));
73             } catch (AWTError e) {
74                 exceptions = true;
75             }
76             if (!exceptions)
77                 throw new RuntimeException("AWTError did not occur when expected");
78 
79             b.getLayout();
80             b.invalidate();
81             b.validate();
82             b.revalidate();
83 
84             Insets ins = b.getInsets();
85             b.getAlignmentY();
86             b.getAlignmentX();
87             b.getGraphics();
88             b.setVisible(false);
89             b.setVisible(true);
90             b.setEnabled(false);
91             b.setEnabled(true);
92             b.setForeground(Color.red);
93             b.setBackground(Color.red);
94 
95             for (String font : Toolkit.getDefaultToolkit().getFontList()) {
96                 for (int j = 8; j < 17; j++) {
97                     Font f1 = new Font(font, Font.PLAIN, j);
98                     Font f2 = new Font(font, Font.BOLD, j);
99                     Font f3 = new Font(font, Font.ITALIC, j);
100                     Font f4 = new Font(font, Font.BOLD | Font.ITALIC, j);
101 
102                     b.setFont(f1);
103                     b.setFont(f2);
104                     b.setFont(f3);
105                     b.setFont(f4);
106 
107                     b.getFontMetrics(f1);
108                     b.getFontMetrics(f2);
109                     b.getFontMetrics(f3);
110                     b.getFontMetrics(f4);
111 
112                 }
113             }
114 
115             b.enable();
116             b.disable();
117             b.reshape(10, 10, 10, 10);
118             b.getBounds(new Rectangle(1, 1, 1, 1));
119             b.getSize(new Dimension(1, 2));
120             b.getSize(new Dimension(1, 2));
121             b.getLocation(new Point(1, 2));
122             b.getX();
123             b.getY();
124             b.getWidth();
125             b.getHeight();
126             b.isOpaque();
127             b.isValidateRoot();
128             b.isOptimizedDrawingEnabled();
129             b.isDoubleBuffered();
130 
131             b.remove(0);
132             b.remove(c2);
133             b.removeAll();
134             b.layout();
135             b.preferredSize();
136             b.minimumSize();
137             b.getComponentAt(1, 2);
138             b.locate(1, 2);
139             b.getComponentAt(new Point(1, 2));
140             b.isFocusCycleRoot(new Container());
141             b.transferFocusBackward();
142             b.setName("goober");
143             b.getName();
144             b.getParent();
145             b.getGraphicsConfiguration();
146             b.getTreeLock();
147             b.getToolkit();
148             b.isValid();
149             b.isDisplayable();
150             b.isVisible();
151             b.isShowing();
152             b.isEnabled();
153             b.enable(false);
154             b.enable(true);
155             b.enableInputMethods(false);
156             b.enableInputMethods(true);
157             b.show();
158             b.show(false);
159             b.show(true);
160             b.hide();
161             b.getForeground();
162             b.isForegroundSet();
163             b.getBackground();
164             b.isBackgroundSet();
165             b.getFont();
166             b.isFontSet();
167             b.getLocale();
168             for (Locale locale : Locale.getAvailableLocales())
169                 b.setLocale(locale);
170 
171             b.getColorModel();
172             b.getLocation();
173 
174             exceptions = false;
175             try {
176                 b.getLocationOnScreen();
177             } catch (IllegalComponentStateException e) {
178                 exceptions = true;
179             }
180             if (!exceptions)
181                 throw new RuntimeException("IllegalComponentStateException did not occur when expected");
182 
183             b.location();
184             b.setLocation(1, 2);
185             b.move(1, 2);
186             b.setLocation(new Point(1, 2));
187             b.getSize();
188             b.size();
189             b.setSize(1, 32);
190             b.resize(1, 32);
191             b.setSize(new Dimension(1, 32));
192             b.resize(new Dimension(1, 32));
193             b.getBounds();
194             b.bounds();
195             b.setBounds(10, 10, 10, 10);
196             b.setBounds(new Rectangle(10, 10, 10, 10));
197             b.isLightweight();
198             b.setCursor(new Cursor(Cursor.CROSSHAIR_CURSOR));
199             b.getCursor();
200             b.isCursorSet();
201             b.inside(1, 2);
202             b.contains(new Point(1, 2));
203             b.isFocusTraversable();
204             b.isFocusable();
205             b.setFocusable(true);
206             b.setFocusable(false);
207             b.transferFocus();
208             b.getFocusCycleRootAncestor();
209             b.nextFocus();
210             b.transferFocusUpCycle();
211             b.hasFocus();
212             b.isFocusOwner();
213             b.toString();
214             b.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
215             b.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
216             b.setComponentOrientation(ComponentOrientation.UNKNOWN);
217             b.getComponentOrientation();
218         }
219     }
220 }
221