Добавьте определенные цвета фона к датам JDaychooser

Я разработал приложение Java Swing..

Как я могу установить цвет фона определенных дат JDayChooser?

Спасибо

3 ответа

Решение
    JPanel jPanel = jDayChooser1.getDayPanel();

    Component component[] = jPanel.getComponents();

    for (int i = 7; i < 49; i++) {
        component[i].setBackground(Color.red);
    }

Наконец-то получил решение сделать:D

getDayPanel

public javax.swing.JPanel getDayPanel()

Это возвращает дневную панель. После этого вы можете:

panel.setBackground(color);  

Также:

setForeground

public void setForeground(java.awt.Color foreground)

Устанавливает цвет переднего плана.

setDecorationBackgroundColor

public void setDecorationBackgroundColor(java.awt.Color decorationBackgroundColor)

Устанавливает фон кнопок дней и недель года.

JDayChooser имеет protected поле, которое определяет selectedColor, но у него нет публичного интерфейса. Вы можете,

  • Изменить серый по умолчанию, в JDayChooser#init(),

  • Добавьте необходимые методы; новое связанное свойство появится в JCalendarDemo,

    public Color getSelectedColor() {
        return selectedColor;
    }
    
    public void setSelectedColor(Color selectedColor) {
        this.selectedColor = selectedColor;
    }
    

Как обсуждено здесь, setBackground() плохо читается в некоторых реализациях Look & Feel. Обходной путь в DecoratorButton#paint() это пример.

Другие вопросы по тегам