2013-04-26 1 views

ответ

1
JPanel jPanel = jDayChooser1.getDayPanel(); 

    Component component[] = jPanel.getComponents(); 

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

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

2

getDayPanel

public javax.swing.JPanel getDayPanel() 

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

panel.setBackground(color); 

также:

setForeground

public void setForeground(java.awt.Color foreground) 

Устанавливает цвет ForegroundColor.

setDecorationBackgroundColor

public void setDecorationBackgroundColor(java.awt.Color decorationBackgroundColor) 

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

+1

JPanel jPanel = jDayChooser1.getDayPanel(); Компонентный компонент [] = jPanel.getComponents(); для (int i = 7; i <49; i ++) { компонент [i] .setBackground (Color.red); } –

+0

рад, что вы нашли решение и спасибо за отзыв. + 1 для вашего ответа. Совет. Не забывайте правильно указывать свой собственный ответ. Это даст вам очки репутации. –

1

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

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

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

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

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