/** * JCalendar constructor with month spinner parameter. * * @param date the date * @param locale the locale * @param monthSpinner false, if no month spinner should be used * @param weekOfYearVisible true, if weeks of year shall be visible */ public JCalendar(Date date, Locale locale, boolean monthSpinner, boolean weekOfYearVisible) { // needed for setFont() etc. dayChooser = null; monthChooser = null; yearChooser = null; this.weekOfYearVisible = weekOfYearVisible; this.locale = locale; if (locale == null) { this.locale = Locale.getDefault(); } Locale.setDefault(new Locale("ru", "RU")); calendar = Calendar.getInstance(); setLayout(new BorderLayout()); monthYearPanel = new JPanel(); monthYearPanel.setLayout(new BorderLayout()); monthChooser = new JMonthChooser(monthSpinner); yearChooser = new JYearChooser(); monthChooser.setYearChooser(yearChooser); monthYearPanel.add(monthChooser, BorderLayout.WEST); monthYearPanel.add(yearChooser, BorderLayout.CENTER); monthYearPanel.setBorder(BorderFactory.createEmptyBorder()); dayChooser = new JDayChooser(weekOfYearVisible); dayChooser.addPropertyChangeListener(this); monthChooser.setDayChooser(dayChooser); monthChooser.addPropertyChangeListener(this); yearChooser.setDayChooser(dayChooser); yearChooser.addPropertyChangeListener(this); add(monthYearPanel, BorderLayout.NORTH); add(dayChooser, BorderLayout.CENTER); // Set the initialized flag before setting the calendar. This will // cause the other components to be updated properly. if (date != null) { calendar.setTime(date); } initialized = true; setCalendar(calendar); }
/** * Sets the foreground color. * * @param fg the new foreground */ public void setForeground(Color fg) { super.setForeground(fg); if (dayChooser != null) { dayChooser.setForeground(fg); monthChooser.setForeground(fg); yearChooser.setForeground(fg); } }
/** * Sets the font property. * * @param font the new font */ public void setFont(Font font) { super.setFont(font); if (dayChooser != null) { dayChooser.setFont(font); monthChooser.setFont(font); yearChooser.setFont(font); } }
/** * Enable or disable the JCalendar. * * @param enabled the new enabled value */ public void setEnabled(boolean enabled) { super.setEnabled(enabled); if (dayChooser != null) { dayChooser.setEnabled(enabled); monthChooser.setEnabled(enabled); yearChooser.setEnabled(enabled); } }
/** * Sets the date. Fires the property change "date". * * @param date the new date. */ public void setDate(Date date) { Date oldDate = calendar.getTime(); calendar.setTime(date); yearChooser.setYear(calendar.get(Calendar.YEAR)); monthChooser.setMonth(calendar.get(Calendar.MONTH)); dayChooser.setDay(calendar.get(Calendar.DATE)); firePropertyChange("date", oldDate, date); }
/** * Sets the calendar attribute of the JCalendar object * * @param c the new calendar value * @param update the new calendar value */ private void setCalendar(Calendar c, boolean update) { Calendar oldCalendar = calendar; calendar = c; if (update) { // Thanks to Jeff Ulmer for correcting a bug in the sequence :) yearChooser.setYear(c.get(Calendar.YEAR)); monthChooser.setMonth(c.get(Calendar.MONTH)); dayChooser.setDay(c.get(Calendar.DATE)); } firePropertyChange("calendar", oldCalendar, calendar); }