我们如何检测用户是否在DateTime
上使用样式SWT.CALENDAR
在月份,日期或年份点击(使用鼠标)。
答案 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()
因此,您可以获取鼠标的相对位置,单击它并计算它所在的元素,具体取决于组件属性。