#java #calendar #codenameone
#java #Календарь #codenameone
Вопрос:
Я расширил календарь в Codename One, однако, похоже, я не смог обновить текст для дней в текущем месяце, но я могу легко обновить дни, которые появляются до или после выбранного месяца
На изображении ниже показано, что я изменил другие дни на букву «F» :
Есть идеи, где я это упускаю, потому что я все перепробовал! Я использую netbeans, также используя пример «Chrome» для проверки моего случая.
protected com.codename1.ui.Calendar gui_Calendar = new com.codename1.ui.Calendar(){
@Override protected void setDayText(Component c, String t){
System.err.println(c " | " t);
super.setDayText(c, "H");
Button b=(Button)c;
b.setText("F");
}
protected void setDayUIID(Component cmp, String uiid){
// System.err.println(cmp " | " uiid);
super.setDayUIID(cmp, uiid);
}
@Override protected Component createDayComponent(){
Component c = super.createDayComponent();
Button b =(Button)c;
System.err.println("com:" b " text:" b.getText());
b.setText("GH");
return c;
}
@Override protected Label createDayTitle(int day){
//this create label for SUMTF
Label l =super.createDayTitle(day);
System.err.println("label: " l.getText() " d: " day);
return l;
}
@Override protected String getDayText(Component cmp){
String s=super.getDayText(cmp);
System.err.println("TEXT: " s);
return s;
}
@Override protected void updateButtonDayDate(Component dayButton, int currentMonth, int day){
System.err.println("dayButton: " dayButton " m: " currentMonth " d: " day);
Button b=(Button)dayButton;
b.setText("M");
super.updateButtonDayDate(dayButton, currentMonth, day);
}
@Override protected void updateButtonDayDate(Component dayButton, int year, int currentMonth, int day){
System.err.println("dayButton: " dayButton " Y: " year " m: " currentMonth " d: " day);
Button b=(Button)dayButton;
b.setText("Y");
super.updateButtonDayDate(dayButton, currentMonth, day);
}
};
Комментарии:
1.Почему вы вызываете,
setText
перед вызовом super? Если вы сделаете это послеsuper.updateButtonDayDate
, это сработает. Очевидно, что вам также необходимо включить информацию о дне при настройке текста.2. @ShaiAlmog Я действительно не понимаю логики, но это сработало, спасибо!
3.
updateButtonDayDate
в базовом классе есть возможность задать текст кнопки, которую он используетsetText
. Таким образом, вы вызываетеsetText
, а затемupdateButtonDayDate
который снова вызываетsetText
с другим значением.4. @shaialmog понял, спасибо