⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calendarpanel.java

📁 这个项目是为Java平台提供一个灵活的日历组件(Ok)
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
        firePropertyChange("yearPosition", old, yearPosition);    }        /** Utility method to layout the scrolls. */    private void layoutScrollAndYear() {        if (orientation == VERTICAL) {            if (yearPosition == UP) {                add(ys, BorderLayout.NORTH);                add(today, BorderLayout.SOUTH);            } else {                add(ys, BorderLayout.SOUTH);                add(today, BorderLayout.NORTH);            }                        if (scrollPosition == LEFT) {                add(scroll, BorderLayout.WEST);            } else {                add(scroll, BorderLayout.EAST);            }        } else {            abajo = new JPanel(new GridBagLayout());            GridBagConstraints gbc = new GridBagConstraints();            gbc.weighty = 1;            gbc.gridheight = 1;            gbc.gridwidth = 1;            gbc.fill = GridBagConstraints.BOTH;                        if (yearPosition == LEFT) {                gbc.weightx = 0;                abajo.add(ys, gbc);                gbc.weightx = 1;                abajo.add(scroll, gbc);                gbc.weightx = 0;                abajo.add(today, gbc);            } else {                gbc.weightx = 0;                abajo.add(today, gbc);                gbc.weightx = 1;                abajo.add(scroll, gbc);                gbc.weightx = 0;                abajo.add(ys, gbc);            }                        if (scrollPosition == UP) {                add(abajo, BorderLayout.NORTH);            } else {                add(abajo, BorderLayout.SOUTH);            }                    }    }        /**      * Getter for property quantity.     * @return Value of property quantity.     */    public int getQuantity() {        return months.length;    }        /**      * Setter for property quantity.     * @param quantity New value of property quantity.     */    public void setQuantity(int quantity) {        if (quantity < 1) {            quantity = 1;        }        if (quantity > 12) {            quantity = 12;        }        if ((months != null) && (months.length == quantity)) {            return;        }        int old = this.quantity;        months = new MonthPanel[quantity];        for (int i = 0; i < months.length; i++) {            months[i] = new MonthPanel(showWeekNumber);            months[i].showTitle(true);            months[i].setModel(datamodel);            months[i].setRenderer(dayrenderer);            months[i].setHeaderRenderer(headerrenderer);            months[i].setMinimalDaysInFirstWeek(minimalDaysInFirstWeek);            months[i].setDay(new Date());            DayPanel[] daypanels = months[i].getDaypanels();            for (int j=0; j < daypanels.length; j++) {                daypanels[j].addKeyListener(klistener);                daypanels[j].addMouseListener(mlistener);            }        }        int oldor = orientation;        orientation = -1;        setOrientation(oldor);        this.quantity = quantity;        scroll.setMaximum(12 + 5  - quantity);        if (old != 0) firePropertyChange("quantity", old, quantity);    }        /**     * Registers KeyListener to receive events.     * @param listener The listener to register.     */    public synchronized void addKeyListener(java.awt.event.KeyListener listener) {        if (listenerList == null ) {            listenerList = new javax.swing.event.EventListenerList();        }        listenerList.add(java.awt.event.KeyListener.class, listener);    }        /**     * Removes KeyListener from the list of listeners.     * @param listener The listener to remove.     */    public synchronized void removeKeyListener(java.awt.event.KeyListener listener) {        listenerList.remove(java.awt.event.KeyListener.class, listener);    }        /**     * Notifies all registered listeners about the event.     *     * @param event The event to be fired     */    private void fireKeyListenerKeyTyped(java.awt.event.KeyEvent event) {        if (listenerList == null) return;        Object[] listeners = listenerList.getListenerList();        for (int i = listeners.length-2; i>=0; i-=2) {            if (listeners[i]==java.awt.event.KeyListener.class) {                ((java.awt.event.KeyListener)listeners[i+1]).keyTyped(event);            }        }    }        /**     * Notifies all registered listeners about the event.     *     * @param event The event to be fired     */    private void fireKeyListenerKeyPressed(java.awt.event.KeyEvent event) {        if (listenerList == null) return;        Object[] listeners = listenerList.getListenerList();        for (int i = listeners.length-2; i>=0; i-=2) {            if (listeners[i]==java.awt.event.KeyListener.class) {                ((java.awt.event.KeyListener)listeners[i+1]).keyPressed(event);            }        }    }        /**     * Notifies all registered listeners about the event.     *     * @param event The event to be fired     */    private void fireKeyListenerKeyReleased(java.awt.event.KeyEvent event) {        if (listenerList == null) return;        Object[] listeners = listenerList.getListenerList();        for (int i = listeners.length-2; i>=0; i-=2) {            if (listeners[i]==java.awt.event.KeyListener.class) {                ((java.awt.event.KeyListener)listeners[i+1]).keyReleased(event);            }        }    }        /**     * Enables or disables the component     * @param enabled true for enabling     */    public void setEnabled(boolean enabled) {        for (int i=0; i < months.length; i++) {            months[i].setEnabled(enabled);        }        scroll.setEnabled(enabled);        ys.setEnabled(enabled);        repaint();       // this.enabled = enabled;        super.setEnabled(enabled);    }        /**     * Getter for enabled property     * @return true if it's enabled     */    public boolean isEnabled() {        return scroll.isEnabled();    }        /**     * @return Returns the antiAliased.     */    public boolean isAntiAliased() {        return antiAliased;    }        /**     * @param antiAliased The antiAliased to set.     */    public void setAntiAliased(boolean antiAliased) {        boolean old = this.antiAliased;        this.antiAliased = antiAliased;        for (int i=0; i < months.length; i++) {            months[i].setAntiAliased(antiAliased);        }        firePropertyChange("antiAliased", old, antiAliased);    }    /**     * @return Returns the selectionMode.     */    public int getSelectionMode() {        return dateSelectionModel.getSelectionMode();    }    /**     * @param selectionMode The selectionMode to set.     */    public void setSelectionMode(int selectionMode) {        int old = dateSelectionModel.getSelectionMode();        dateSelectionModel.setSelectionMode(selectionMode);        refreshSelection();        firePropertyChange("selectionMode", old, selectionMode);    }        private void refreshSelection() {        for (int i=0; i < months.length; i++) {            DayPanel[] daypanels = months[i].getDaypanels();            for (int j=0; j < daypanels.length; j++) {                if (!daypanels[j].isEnabled()) {                    daypanels[j].setSelected(false);                    continue;                }                daypanels[j].setSelected(dateSelectionModel.isSelectedDate(daypanels[j].getDate()));            }        }    }        private boolean isShowing(Date date) {        //if (minDate == null) return false;        if (date.before(minDate)) return false;        //if (maxDate == null) return false;        if (date.after(maxDate)) return false;        return true;    }        private void showMonth(Date d) {        Calendar cal = new GregorianCalendar();        cal.setTime(d);        if (ys.getYear() != cal.get(Calendar.YEAR)) {            ys.setYear(cal.get(Calendar.YEAR));            setShowingYear(ys.getYear());        }        if (isShowing(d)) return;                int month = cal.get(Calendar.MONTH);        int middle = (quantity / 2);        int show = 0;        if (month < scroll.getValue()) {            show = month;        } else {            show = month - quantity + 1;        }        if (show < 0) {            show = 0;        }        if (show > (11 - quantity + middle)) {            show = (11 - quantity + middle);        }        scroll.setValue(show);    }        /** Returns the selected date.     * @return Selected Date     */    public Object getValue() {        return dateSelectionModel.getSelectedDate();    }        /** Return the selected dates as an Array.     * @return Selected Dates     */    public Object[] getValues() {        return dateSelectionModel.getSelectedDates();    }        /** Sets the selected date.     * @param date Date to select     */    public void setValue(Object date) {        try {            setDate(CalendarUtils.convertToDate(date));        } catch (ParseException e) {            e.printStackTrace();        }    }        /** Set the selected dates.     * @param dates Array with the Dates     */    public void setValues(Object[] dates) {        dateSelectionModel.setSelectedDates(dates);        refreshSelection();        repaint();        showMonth((Date) dateSelectionModel.getSelectedDates()[0]);    }        /**     * @return Returns the dateSelectionModel.     */    public DateSelectionModel getDateSelectionModel() {        return dateSelectionModel;    }        /**     * @param dateSelectionModel The dateSelectionModel to set.     */    public void setDateSelectionModel(DateSelectionModel dateSelectionModel) {        if (dateSelectionModel != null) {            this.dateSelectionModel.removeDateSelectionListener(listlistener);            this.dateSelectionModel = dateSelectionModel;            dateSelectionModel.addDateSelectionListener(listlistener);        }    }        /**     * Specifies how many days should the first week of the year contain <br>     * If not specified, i.e. 0, then no changes from the defaults are done     *      * @param number     */    public void  setMinimalDaysInFirstWeek(int number) {      if (months[0].getMinimalDaysInFirstWeek() != number) {        for (int i = 0; i < months.length; i++) {          months[i].setMinimalDaysInFirstWeek (number);        }        refreshSelection();        repaint();        firePropertyChange("minimalDaysInFirstWeek", minimalDaysInFirstWeek, number);        minimalDaysInFirstWeek = number;      }    }        /**     * @return how many weekdays does the first week of the year have     */    public int getMinimalDaysInFirstWeek() {      return months[0].getMinimalDaysInFirstWeek();    }    /**     * @return Returns the printMoon.     */    public boolean isPrintMoon() {      return printMoon;    }    /**     * @param printMoon The printMoon to set.     */    public void setPrintMoon(boolean printMoon) {      if (this.printMoon != printMoon) {        this.printMoon = printMoon;        for (int i = 0; i < months.length; i++) {          months[i].setPrintMoon(printMoon);        }        refreshSelection();        repaint();        firePropertyChange("printMoon", printMoon, !printMoon);      }    }        public void setTodayCaption(String caption) {        if (caption == null) {            today.setText(CalendarUtils.getMessage("today"));        } else {            today.setText(caption);        }    }            /**     * @return Returns the eternalScroll.     */    public boolean isEternalScroll() {        return eternalScroll;    }    /**     * @param eternalScroll The eternalScroll to set.     */    public void setEternalScroll(boolean eternalScroll) {        this.eternalScroll = eternalScroll;    }    /**     * @return Returns the showToday.     */    public boolean isShowToday() {        return showToday;    }    /**     * @param showToday The showToday to set.     */    public void setShowToday(boolean showToday) {        today.setVisible(showToday);        repaint();        this.showToday = showToday;    }        }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -