S
sleepy
Gast
Code:
ColorBox = new JComboBox();
ColorBox.setEditable( false );
// Der Renderer: packt jede Farbe in ein Icon, und stellt dieses Icon dar.
ColorBox.setRenderer( new DefaultListCellRenderer(){
public Component getListCellRendererComponent( JList arg0, Object value, int arg2, boolean arg3, boolean arg4 ) {
final Color color = (Color)value;
String name = color.getRed() + ", " + color.getGreen() + ", " + color.getBlue();
//String name = "";
super.getListCellRendererComponent(arg0, name, arg2, arg3, arg4);
setIcon( new Icon(){
public void paintIcon( Component c, Graphics g, int x, int y ) {
g.setColor( color );
g.fillRect( x, y, getIconWidth(), getIconHeight() );
}
public int getIconWidth(){
return 30;
}
public int getIconHeight(){
return 16;
}
});
return this;
}
});
ColorBox.addItemListener( new ItemListener(){
public void itemStateChanged( ItemEvent e ){
JComboBox selectedChoice = (JComboBox)e.getSource();
}
});
//Das Model der ComboBox wird direkt mit den Color-Objekten gefüllt
DefaultComboBoxModel model = new DefaultComboBoxModel();
model.addElement( Color.BLACK );
model.addElement( Color.RED );
model.addElement( Color.GREEN );
model.addElement( Color.BLUE );
model.addElement( Color.CYAN );
model.addElement( Color.MAGENTA );
model.addElement( Color.ORANGE );
ColorBox.setModel( model );
Also, so sieht meine BolorBox bis jetzt aus. Es stehen nur die Icons drin, also nicht der RGB-Code. Hab nen ActionListener hinzugefügt, nur weiß ich jetzt nicht wie ich die einzelnen Farben anspreche. Also das wenn ich Rot wähle setColor(rot); ist und bei den anderen die anderen Farben.
Wie geht das?
Code:
if( selectedChoice.getSelectedItem().equals("Red") )
setColor(Color.Red);
}
Bitte helft mir.[/code]