Witam,
piszę właśnie program na zaliczenie w Swingu i zacząłem długą i mozolną zabawę nad własnym ostylowaniem tego.
link:
http://img801.imageshack.us/img801/8808/gb1p.jpg
Chciałem uzyskać dokładnie taki efekt i poza zmianą koloru strzałki wszystko się udało. Zastanawiam się jak wygląda w firmach praca na designem czy w ogóle ktoś się tym zajmuje czy może nikt nie przykłada do tego wagi. Interesuje mnie także czy to co zrobiłem da się po stronie kodu napisać lepiej bo tutaj troszeczkę pewnie namotałem.
public class SelectMessagesType extends JComboBox {
private String[] names;
private DefaultComboBoxModel cbm;
@SuppressWarnings("unchecked")
public SelectMessagesType(String[] _names) {
super();
UIManager.put("ComboBox.foreground", new Color(252, 200, 101));
UIManager.put("ComboBox.background", new Color(41, 31, 40, 255));
UIManager.put("ComboBox.buttonBackground", new Color(41, 31, 40, 255));
names = _names;
cbm = new DefaultComboBoxModel(names);
setModel(cbm);
setUI(new BasicComboBoxUI() {
@Override
protected JButton createArrowButton() {
JButton b = super.createArrowButton();
b.setContentAreaFilled(false);
b.setBorder(BorderFactory.createEmptyBorder());
return b;
}
});
setFocusable(false);
}
}
a tutaj wstawienie tego do JPanelu
sMT = new SelectMessagesType(selectNames);
sMT.addActionListener(this);
sMT.setOpaque(true);
sMT.setBorder(BorderFactory.createEmptyBorder());
sMT.setFocusable(false);
sMT.setBackground(new Color(41, 31, 40, 255));
JScrollPane pane = new JScrollPane(sMT);
pane.setBackground(new Color(224, 170, 65));
pane.setBounds(10, 43, 240, 20);
pane.setBorder(BorderFactory.createEmptyBorder());
add(pane);