You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
145 lines
4.0 KiB
145 lines
4.0 KiB
/*
|
|
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* ORACLE 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
|
|
* <p>
|
|
* <strong>Warning:</strong>
|
|
* 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 JavaBeans™
|
|
* has been added to the <code>java.beans</code> package.
|
|
* Please see {@link java.beans.XMLEncoder}.
|
|
*
|
|
* @author Arnaud Weber
|
|
*/
|
|
public class BasicComboBoxRenderer extends JLabel
|
|
implements ListCellRenderer, Serializable {
|
|
|
|
/**
|
|
* An empty <code>Border</code>. This field might not be used. To change the
|
|
* <code>Border</code> used by this renderer directly set it using
|
|
* the <code>setBorder</code> method.
|
|
*/
|
|
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.
|
|
* <p>
|
|
* <strong>Warning:</strong>
|
|
* 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 JavaBeans™
|
|
* has been added to the <code>java.beans</code> package.
|
|
* Please see {@link java.beans.XMLEncoder}.
|
|
*/
|
|
public static class UIResource extends BasicComboBoxRenderer implements javax.swing.plaf.UIResource {
|
|
}
|
|
}
|