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