/* * @(#)BasicComboBoxRenderer.java 1.22 05/10/31 * * Copyright 2004 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ package javax.swing.plaf.basic; import javax.swing.*; import javax.swing.event.*; import javax.swing.border.*; import java.awt.*; import java.io.Serializable; /** * ComboBox renderer *

* Warning: * Serialized objects of this class will not be compatible with * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage * of all JavaBeansTM * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * * @version 1.22 10/31/05 * @author Arnaud Weber */ public class BasicComboBoxRenderer extends JLabel implements ListCellRenderer, Serializable { protected static Border noFocusBorder = new EmptyBorder(1, 1, 1, 1); private final static Border SAFE_NO_FOCUS_BORDER = new EmptyBorder(1, 1, 1, 1); public BasicComboBoxRenderer() { super(); setOpaque(true); setBorder(getNoFocusBorder()); } private static Border getNoFocusBorder() { if (System.getSecurityManager() != null) { return SAFE_NO_FOCUS_BORDER; } else { return noFocusBorder; } } public Dimension getPreferredSize() { Dimension size; if ((this.getText() == null) || (this.getText().equals( "" ))) { setText( " " ); size = super.getPreferredSize(); setText( "" ); } else { size = super.getPreferredSize(); } return size; } public Component getListCellRendererComponent( JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { /**if (isSelected) { setBackground(UIManager.getColor("ComboBox.selectionBackground")); setForeground(UIManager.getColor("ComboBox.selectionForeground")); } else { setBackground(UIManager.getColor("ComboBox.background")); setForeground(UIManager.getColor("ComboBox.foreground")); }**/ if (isSelected) { setBackground(list.getSelectionBackground()); setForeground(list.getSelectionForeground()); } else { setBackground(list.getBackground()); setForeground(list.getForeground()); } setFont(list.getFont()); if (value instanceof Icon) { setIcon((Icon)value); } else { setText((value == null) ? "" : value.toString()); } return this; } /** * A subclass of BasicComboBoxRenderer that implements UIResource. * BasicComboBoxRenderer doesn't implement UIResource * directly so that applications can safely override the * cellRenderer property with BasicListCellRenderer subclasses. *

* Warning: * Serialized objects of this class will not be compatible with * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage * of all JavaBeansTM * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ public static class UIResource extends BasicComboBoxRenderer implements javax.swing.plaf.UIResource { } }