Мне не понравилась стандартная кнопка со стрелкой JComboBox, потому что она не очень хорошо вписывалась в мой графический интерфейс. Поэтому я изменил его. Для этого я написал класс, который распространяется BasicComboUI
. В обычном случае все так, как я ожидаю. Но как только я выключаю кнопку, она остается такой, какой она есть, а это означает, что кнопка больше не получает серый цвет фона. Вместо этого выполняется левая часть списка. Поэтому я хотел бы знать, есть ли способ определить или изменить поведение отключения кнопки со стрелкой.Определение/настройка цвета JComboBox BasicArrowButton в случае отключения
Вот мой текущий код:
public class CustomArrowUI extends BasicComboBoxUI{
private static Color buttonBackground;
private static Color borderBox;
private static Color arrowColor;
private static Color buttonBorder;
public static ComboBoxUI createUI(JComponent c, Color buttonBackground, Color borderBox, Color arrowColor, Color buttonBorder)
{
CustomArrowUI.buttonBackground = buttonBackground;
CustomArrowUI.borderBox = borderBox;
CustomArrowUI.arrowColor = arrowColor;
CustomArrowUI.buttonBorder = buttonBorder;
return new CustomArrowUI();
}
@Override
protected JButton createArrowButton()
{
JButton button = new BasicArrowButton(BasicArrowButton.SOUTH, buttonBackground, borderBox, arrowColor, buttonBorder);
LineBorder border = new LineBorder(buttonBorder, 1);
button.setEnabled(false);
button.setBorder(border);
return button;
}}
Что я мог сделать, это установка фона светло-серого цвета по умолчанию, а также изменить цвет в ActionListener предыдущей кнопки, которая позволяя мою JComboBox. Но мне это не нравится. Я бы предпочел сделать это прямо в моем CustomArrowUI