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

标签 java codenameone

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

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

2- 在每个日历日查看他当天的预约数量以及类(class)日期。

我读到我可以通过覆盖 updateButtonDayDate()createDay() 来做到这一点,但我不知道如何在我的代码中做到这一点。你能给我举个例子吗?

enter image description here

最佳答案

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

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

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);

您可以在自定义日历中尝试各种操作,直到找到有效的方法。按住 Ctrl 键并单击“日历”以检查来源并了解可以覆盖哪些内容以及不能覆盖哪些内容。

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

关于java - 代号一 - 自定义日历日按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34386818/

相关文章:

java - Scala sbt 构建因 javafx 失败

c# - FormatterServices.GetUninitializedObject(type) UWP/NETCore 等效

codenameone - 像代号一号中的 Instagram 一样水平滚动

Java AWT 1.3 至代号一

codenameone - Android日历权限问题

java - 如何将不同的主题应用到桌面 swing 软件?

java - 公历 : Jumping from tuesday to sunday

java - 实例方法引用。没有找到合适的方法

java - 单击第二个布局上的按钮不起作用

java - 如何更改 codenameone 中组件的大小(宽度和高度)