Java JComboBox внешний вид

1

в моем приложении у меня есть 2 типа JComboBox: редактируемые и нередактируемые.
Здесь, как редактируемое появляется в Windows 7 с Java 7:

Изображение 174551

и здесь не редактируемые:

Изображение 174551

Можно ли установить белый фон в JComboBox редактирования JComboBox?

Теги:
swing
jcombobox

1 ответ

0

Просто установите фон в редактируемом комбо. Примечание. Редактором редактируемого комбо является 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: добавлен код, чтобы удалить различия с размером и цветом фокуса.

  • 0
    Ваш код не работает ...
  • 0
    Меня устраивает. Вам нужно будет объяснить свою проблему немного лучше. Что вы видите, что вы не хотите? Или, что вы не видите, что вы хотите?
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню