/* * Copyright (c) 2007, 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 6488219 6560738 7158350 8017469 * @summary Test that text printed in Swing UI measures and looks OK. * @run main/manual=yesno PrintTextTest
*/
static String[] instructions = { "This tests that when a Swing UI is printed, that the text", "in each component properly matches the length of the component", "as seen on-screen, and that the spacing of the text is of", "reasonable even-ness. This latter part is very subjective and", "the comparison has to be with JDK1.5 GA, or JDK 1.6 GA",
};
staticvoid displayText(JPanel p, String text) {
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(2,1));
JPanel row = new JPanel();
Font font = new Font("Dialog", Font.PLAIN, 12);
JLabel label = new JLabel(text);
label.setFont(font);
row.add(label);
JButton button = new JButton("Print "+text);
button.setMnemonic('P');
button.setFont(font);
row.add(button);
panel.add(row);
row = new JPanel();
JTextField textField = new JTextField(text);
row.add(textField);
JTextArea textArea = new JTextArea();
textArea.setText(text);
row.add(textArea);
panel.add(row);
p.add(panel);
}
publicint print(Graphics g, PageFormat pf, int pageIndex) throws PrinterException {
/** This is part of the standard test machinery. It provides a place for the test instructions to be displayed, and a place for interactive messages to the user to be displayed. To have the test instructions displayed, see Sysout. To have a message to the user be displayed, see Sysout. Do not call anything in this dialog directly.
*/ class TestDialog extends Dialog
{
TextArea instructionsText;
TextArea messageText; int maxStringLength = 80;
//DO NOT call this directly, go through Sysout public TestDialog( Frame frame, String name )
{ super( frame, name ); int scrollBoth = TextArea.SCROLLBARS_BOTH;
instructionsText = new TextArea( "", 10, maxStringLength, scrollBoth );
add( "North", instructionsText );
//DO NOT call this directly, go through Sysout publicvoid printInstructions( String[] instructions )
{ //Clear out any current instructions
instructionsText.setText( "" );
//Go down array of instruction strings
String printStr, remainingStr; for( int i=0; i < instructions.length; i++ )
{ //chop up each into pieces maxSringLength long
remainingStr = instructions[ i ]; while( remainingStr.length() > 0 )
{ //if longer than max then chop off first max chars to print if( remainingStr.length() >= maxStringLength )
{ //Try to chop on a word boundary int posOfSpace = remainingStr.
lastIndexOf( ' ', maxStringLength - 1 );
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.