使用 JXMonthView,可以将其设置为“Traversable”,这意味着在标题中的月份名称旁边会出现左右箭头。它们允许用户选择不同的月份来查看,有效地遍历日历年。
我想在这些箭头上放置一个事件监听器,以便每次单击它们时,都会刷新标记的日期。目前,这仅在用户单击 JXMonthView 中的日期时发生,这会更改当前选择,从而触发刷新。有谁知道如何访问这些单独的遍历按钮并向它们添加监听器?
使用 JXMonthView,可以将其设置为“Traversable”,这意味着在标题中的月份名称旁边会出现左右箭头。它们允许用户选择不同的月份来查看,有效地遍历日历年。
我想在这些箭头上放置一个事件监听器,以便每次单击它们时,都会刷新标记的日期。目前,这仅在用户单击 JXMonthView 中的日期时发生,这会更改当前选择,从而触发刷新。有谁知道如何访问这些单独的遍历按钮并向它们添加监听器?
您可以收听firstDisplayedDay
财产变化。
根据源代码,BasicMonthViewUI.nextMonth()
或者previousMonth()
调用monthView.setFirstDisplayedDay
哪个依次调用firePropertyChange("firstDisplayedDay", oldDate, getFirstDisplayedDay());
。
例如:
monthView.addPropertyChangeListener(new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent e) {
if ("firstDisplayedDay".equals(e.getPropertyName())) {
System.out.println("updated");
}
}
});