в моем приложении у меня есть 2 типа JComboBox
: редактируемые и нередактируемые.
Здесь, как редактируемое появляется в Windows 7 с Java 7:
и здесь не редактируемые:
Можно ли установить белый фон в JComboBox
редактирования JComboBox
?
Просто установите фон в редактируемом комбо. Примечание. Редактором редактируемого комбо является JTextField
по умолчанию, поэтому UIManager
значение UIManager
.
Использование Java 7 в Windows XP:
import java.awt.*;
import javax.swing.*;
import javax.swing.plaf.*;
public class ComboBoxDemo implements Runnable
{
public static void main(String[] args) throws Exception
{
SwingUtilities.invokeLater(new ComboBoxDemo());
}
@SuppressWarnings("unchecked")
public void run()
{
String[] items = new String[]{"", "Apple", "Banana", "Carrot"};
Color bgColor = UIManager.getColor("TextField.background");
UIManager.put("ComboBox.selectionBackground",
new ColorUIResource(bgColor));
JComboBox combo1 = new JComboBox(items);
combo1.setPrototypeDisplayValue("XXXXXXXXXXXXXXX");
combo1.setEditable(true);
combo1.setSelectedIndex(-1);
JComboBox combo2 = new JComboBox(items);
combo2.setPrototypeDisplayValue("XXXXXXXXXXXXXXX");
combo2.setEditable(false);
combo2.setSelectedIndex(-1);
combo2.setBackground(bgColor);
JFrame frame = new JFrame();
Container c = frame.getContentPane();
c.setLayout(new FlowLayout());
c.add(combo1);
c.add(combo2);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200, 100);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
EDIT: добавлен код, чтобы удалить различия с размером и цветом фокуса.