/* * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * - Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * - Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * - Neither the name of Oracle nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/* * This source code is provided to illustrate the usage of a given feature * or technique and has been deliberately simplified. Additional steps * required for a production-quality application, such as security checks, * input validation and proper error handling, might not be present in * this sample code.
*/
public RangeMenu( Font2DTest demo, JFrame f ) { super();
parent = demo;
for ( int i = 0; i < UNICODE_RANGE_NAMES.length; i++ )
addItem( UNICODE_RANGE_NAMES[i] );
setSelectedIndex( 0 );
addActionListener( this );
/// Set up custom range dialog...
customRangeDialog = new JDialog( f, "Custom Unicode Range", true );
customRangeDialog.setResizable( false );
JPanel dialogTop = new JPanel();
JPanel dialogBottom = new JPanel();
JButton okButton = new JButton("OK");
JLabel from = new JLabel( "From:" );
JLabel to = new JLabel("To:");
Font labelFont = new Font( "dialog", Font.BOLD, 12 );
from.setFont( labelFont );
to.setFont( labelFont );
okButton.setFont( labelFont );
dialogTop.add( from );
dialogTop.add( customRangeStart );
dialogTop.add( to );
dialogTop.add( customRangeEnd );
dialogBottom.add( okButton );
okButton.addActionListener( this );
/// Function used by loadOptions in Font2DTest main panel /// to reset setting and range selection publicvoid setSelectedRange( String name, int start, int end ) {
setSelectedItem( name );
customRange[0] = start;
customRange[1] = end;
parent.fireRangeChanged();
}
/// ActionListener interface function /// ABP /// moved JComboBox event code into this fcn from /// itemStateChanged() method. Part of change to Swing. publicvoid actionPerformed( ActionEvent e ) {
Object source = e.getSource();
privatestatic String[] getUnicodeRangeNames() {
String[] names = new String[UNICODE_RANGES.length]; for (int i = 0 ; i < names.length ; i++ ) {
names[i] = titleCase(
Character.UnicodeBlock.of(UNICODE_RANGES[i][0]).toString());
}
names[names.length - 1] = "Custom..."; return names;
}
privatestatic String titleCase(String str) {
str = str.replaceAll("_", " ");
Pattern p = Pattern.compile("(^|\\W)([a-z])");
Matcher m = p.matcher(str.toLowerCase(Locale.ROOT));
StringBuffer sb = new StringBuffer(); while (m.find()) {
m.appendReplacement(sb, m.group(1) + m.group(2).toUpperCase(Locale.ROOT));
}
m.appendTail(sb); return sb.toString().replace("Cjk", "CJK").replace("Nko", "NKo");
}
}
Messung V0.5 in Prozent
¤ 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.0.18Bemerkung:
(vorverarbeitet am 2026-05-02)
¤
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.