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