litesoft
@ 947
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
// This Source Code is in the Public Domain per: http://unlicense.org package org.litesoft.aokeyhole.swing.simplecomponents; import org.litesoft.aokeyhole.objects.support.*; import org.litesoft.aokeyhole.swing.*; import javax.swing.*; import java.awt.*; @SuppressWarnings("unchecked") public class JComboBoxPlus extends JComboBox { public JComboBoxPlus( String[] pValidOptions, boolean pAddBlank ) { UIManager.put( "ComboBox.disabledForeground", getForeground() ); UIManager.put( "ComboBox.disabledBackground", ComponentColors.getDisabled() ); setBackground( ComponentColors.getEnabled() ); setFont( AdjustFont.sizeBy( getFont(), Font.PLAIN ) ); if ( pAddBlank ) { addItem( "" ); } if ( pValidOptions != null ) { for ( String option : pValidOptions ) { addItem( option ); } } } public void setOptions( String[] pOptions, boolean pForceSelectionOrAddBlank ) { Object curValue = getSelectedItem(); removeAllItems(); if ( pOptions != null ) { if ( pForceSelectionOrAddBlank ) { if ( curValue == null ) { curValue = pOptions[0]; } } else { addItem( "" ); } for ( String option : pOptions ) { addItem( option ); } } setSelectedItem( ensureAnOption( curValue ) ); } public Object ensureAnOption( Object pValue ) { if ( pValue == null ) { pValue = ""; } int items = getItemCount(); for ( int i = 0; i < items; i++ ) { if ( AbstractBase.areEqual( pValue, getItemAt( i ) ) ) { return pValue; } } addItem( pValue ); return pValue; } } |