Java 代号一-自定义日历日按钮

Java 代号一-自定义日历日按钮,java,codenameone,Java,Codenameone,我的应用程序保存约会并将其显示在多按钮列表中,但我还使用GUI builder创建了一个带有日历的屏幕,因为我想创建一个“日历视图”,以便用户可以查看日历并: 1-查看至少突出显示一个约会的每个日期(自定义UIID) 2-查看每个日历日,他当天的约会次数,以及课程日期 我读到我可以通过重写updateButtonDayDate()和createDay()来实现这一点,但我不知道如何在代码中实现这一点。你能给我举个例子吗 要覆盖Calendar类中的updateButtonDayDate()和cr

我的应用程序保存约会并将其显示在多按钮列表中,但我还使用GUI builder创建了一个带有日历的屏幕,因为我想创建一个“日历视图”,以便用户可以查看日历并:

1-查看至少突出显示一个约会的每个日期(自定义UIID)

2-查看每个日历日,他当天的约会次数,以及课程日期

我读到我可以通过重写
updateButtonDayDate()
createDay()
来实现这一点,但我不知道如何在代码中实现这一点。你能给我举个例子吗


要覆盖Calendar类中的
updateButtonDayDate()
createDay()
,您需要创建一个扩展codenameone日历的自定义日历(确保扩展
com.codename1.ui.Calendar
而不是
java.util

在创建自定义日历类后,您必须废弃GUI builder日历,并在代码中创建一个日历。检查下面代码后面的用法示例:

import com.codename1.ui.Button;
import com.codename1.ui.Calendar;
import static com.codename1.ui.Component.CENTER;

public class CustomCalendar extends Calendar {

    @Override
    protected Button createDay() {
        //Customize your button here
        Button day = new Button();
        day.setAlignment(CENTER);
        day.setUIID("CalendarDay");
        day.setEndsWith3Points(false);
        day.setTickerEnabled(false);
        return day;
    }

    @Override
    protected void updateButtonDayDate(Button dayButton, int currentMonth, int day) {
        //Customize day values 
        dayButton.setText("" + day);
    }
}
要使用它,请根据自定义版本声明新日历:

CustomCalendar myCalendar = new CustomCalendar();
myContainer.add(myCalendar);
您可以尝试CustomCalendar中的所有功能,直到找到有效的功能为止。按住Ctrl键并单击日历以检查源代码,了解可以覆盖哪些内容,不能覆盖哪些内容


您甚至可以创建扩展容器的日历版本(尽管不可取)。

要在代号日历中选择或显示多个日期,一个选项是将日期添加到列表中,并根据列表项设置日期按钮的格式:

 cal = new Calendar() {

        @Override
        protected void updateButtonDayDate(Button dayButton, int currentYear, int currentMonth, int day  ) {

            list.add(1);
            list.add(12);
            list.add(13);
            list.add(14);
            list.add(21);


            for (int day_Number : list) {

                if (day_Number == day) {

                    dayButton.setText("" + day);
                    dayButton.setUIID("mycalender-day");

                }

        }

    };
css文件包含格式样式:

mycalender-day {

border: 1px solid whitesmoke;
color:orange;
font-family:  "native:MainRegular";
font-size: 7pt;
}

Felipe,我对CN1应用程序也有类似的问题,如果你能找到解决方案,我会对代码感兴趣。你能发个片段吗?