|
好象没效果啊,没有变化,代码是这样的,应该没错把
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class ComboBoxTest extends JFrame
{
private JComboBox comboBox;
public ComboBoxTest()
{
Color colors[] = { Color.gray, Color.pink, Color.magenta, Color.orange };
comboBox = new JComboBox( colors );
ComboBoxRenderer renderer= new ComboBoxRenderer();
comboBox.setRenderer( renderer );
renderer.setPreferredSize( new Dimension( 40, 15 ) );
comboBox.setEditor( new ComboBoxEditorExample() );
Container con = getContentPane();
JPanel panel =new JPanel();
panel.add( comboBox );
con.add( panel );
setSize( 300, 150 );
setVisible( true );
}
public static void main( String args[] )
{
new ComboBoxTest();
}
}
class ComboBoxRenderer extends JLabel implements ListCellRenderer
{
public ComboBoxRenderer()
{
setOpaque( true );
setHorizontalAlignment( CENTER );
setVerticalAlignment( CENTER );
}
public Component getListCellRendererComponent( JList list, Object value, int index, boolean isSelected, boolean cellHasFocus)
{
if( value instanceof Color )
setBackground( ( Color )value );
return this;
}
}
class ComboBoxEditorExample extends JLabel implements ComboBoxEditor
{
public ComboBoxEditorExample()
{
setOpaque( true );
setHorizontalAlignment( CENTER );
setVerticalAlignment( CENTER );
}
public void setItem( Object anObject )
{
if ( anObject != null && anObject instanceof Color )
setBackground( ( Color )anObject );
}
public Component getEditorComponent() { return this; }
public Object getItem() { return getBackground(); }
public void selectAll() { }
public void addActionListener( ActionListener e ) {}
public void removeActionListener( ActionListener e ) {}
} |
|