关于样式SWT.CALENDAR的DateTime小部件

时间:2014-06-24 07:38:20

标签: java datetime swt

我们如何检测用户是否在DateTime上使用样式SWT.CALENDAR在月份,日期或年份点击(使用鼠标)。

3 个答案:

答案 0 :(得分:1)

实际目的是获取所选日期并处理日历弹出窗口以便单击日期,但在实现此问题时,问题是 即使我们点击年份或月份,日历也会被处理掉,但是我已经自己实现了,感谢所有你的用途

if(calendarWidget.getYear() == defaultYear && calendarWidget.getMonth() == defaultMonth)
{
    //here i am getting the selected date and saving it
    defaultYear = calendarWidget.getYear();
    defaultMonth = calendarWidget.getMonth();
    shell.dispose();
}
else
{
    defaultYear = calendarWidget.getYear();
    defaultMonth = calendarWidget.getMonth();
}

此处默认月份和年份是日历小部件中的默认选定日期。

答案 1 :(得分:0)

根据湿婆的回答,我又增加了一个条件。 如果您选择的是另一个月的当天,那么它将隐藏弹出窗口。例: 你会看到三月的弹出窗口,你选择四月的第一天。

if((calendar.getYear() == defaultYear && calendar.getMonth() == defaultMonth) ||
                    (calendar.getYear() == defaultYear && calendar.getMonth() != defaultMonth && calendar.getDay() != defaultDay))
            {
                //here i am getting the selected date and saving it
                defaultYear = calendar.getYear();
                defaultMonth = calendar.getMonth();
                defaultDay = calendar.getDay();
                popup.dispose();
            }
            else
            {
                defaultYear = calendar.getYear();
                defaultMonth = calendar.getMonth();
                defaultDay = calendar.getDay();
            }

答案 2 :(得分:-1)

如果您的意思是org.eclipse.swt.widgets.DateTime,则会继承addMouseListener

MouseListener接口有方法:

public void mouseClicked(MouseEvent evt)

MouseEvent有方法:

getX()
getY()

因此,您可以获取鼠标的相对位置,单击它并计算它所在的元素,具体取决于组件属性。