正如 eugener 所说,使用自定义ListCellRenderer绝对是正确的方法。您只需要创建一个扩展的类DefaultListCellRenderer。这个默认渲染器进行了扩展JLabel,因此它更容易理解!您只需拨打setBackground()。
JComboBox combo = new JComboBox(new String[] { "A", "B", "C", "D" });
combo.setRenderer(new DefaultListCellRenderer() {
public void paint(Graphics g) {
setBackground(Color.YELLOW);
setForeground(Color.RED);
super.paint(g);
}
});Run Code Online (Sandbox Code Playgroud)