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

📄 calendarpanel.java

📁 这个项目是为Java平台提供一个灵活的日历组件(Ok)
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
                        }                    }                    dateSelectionModel.setLeadSelectionDate(navigation                            .getTime());                    calendar.setTime(navigation.getTime());                    refreshSelection();                    repaint();                    //monthpanel.repaint();                }                fireKeyListenerKeyPressed(e);            }            public void keyReleased(KeyEvent e) {                fireKeyListenerKeyReleased(e);            }            public void keyTyped(KeyEvent e) {                fireKeyListenerKeyTyped(e);            }        };                /*monthlistener = new MonthChangeListener() {            public void monthIncreased(MonthChangeEvent e) {                setDate(e.getDate());            }                        public void monthDecreased(MonthChangeEvent e) {                setDate(e.getDate());            }        };*/                        mlistener = new MouseAdapter() {            public void mouseClicked(MouseEvent e) {                DayPanel dp = (DayPanel) e.getSource();                if (!dp.isEnabled() || !dp.isComponentEnabled())                    return;                dateSelectionModel.setValueIsAdjusting(true);                if (!e.isControlDown()) {                    dateSelectionModel.clearSelection();                    if (e.isShiftDown()) {                        dateSelectionModel.addSelectionInterval(                                dateSelectionModel.getLeadSelectionDate(), dp                                        .getDate());                    } else                        dateSelectionModel.addSelectionInterval(dp.getDate(),                                dp.getDate());                } else {                    if (e.isShiftDown()) {                        dateSelectionModel.addSelectionInterval(                                dateSelectionModel.getLeadSelectionDate(), dp                                        .getDate());                    } else {                        if (dateSelectionModel.isSelectedDate(dp.getDate())) {                            dateSelectionModel.removeSelectionInterval(dp                                    .getDate(), dp.getDate());                        } else                            dateSelectionModel.addSelectionInterval(dp                                    .getDate(), dp.getDate());                    }                }                dateSelectionModel.setLeadSelectionDate(dp.getDate());                repaint();                dp.requestFocus();                calendar.setTime(dp.getDate());                /*fireActionListenerActionPerformed(new ActionEvent(this, 0,                        "clicked"));*/                dateSelectionModel.setValueIsAdjusting(false);                refreshSelection();                repaint();            }        };                // listener para la seleccion        listlistener = new DateSelectionListener() {            public void valueChanged(DateSelectionEvent e) {                for (int i=0; i < months.length; i++) {                    DayPanel[] daypanels = months[i].getDaypanels();                    for (int j=0; j < daypanels.length; j++) {                        if (dateSelectionModel.isSelectedDate(daypanels[j].getDate())) {                            daypanels[j].setSelected(true);                        } else daypanels[j].setSelected(false);                    }                }                repaint();                fireChangeListenerStateChanged(new ChangeEvent(CalendarPanel.this));            }        };    }        /**      * Changes the orientation (horizontal or vertical).     * @param orientation the new orientation     */    public void setOrientation(int orientation) {        if (orientation == this.orientation) {            return;        }        int old = this.orientation;        this.orientation = orientation;        removeAll();        if (orientation == VERTICAL) {            layoutVertical();        } else {            layoutHorizontal();        }        firePropertyChange("orientation", old, orientation);    }        /** Method used to layout vertical. */    private void layoutVertical() {        scroll.setOrientation(Adjustable.VERTICAL);        JPanel centro = new JPanel(new GridLayout(months.length, 1));        for (int i = 0; i < months.length; i++) {            centro.add(months[i]);        }        add(centro, BorderLayout.CENTER);        layoutScrollAndYear();    }        /** Method used to layout horizontal. */    private void layoutHorizontal() {        scroll.setOrientation(Adjustable.HORIZONTAL);        JPanel centro = new JPanel(new GridLayout(1, months.length));        for (int i = 0; i < months.length; i++) {            centro.add(months[i]);        }        add(centro, BorderLayout.CENTER);        layoutScrollAndYear();    }        /**      * Registers ChangeListener to receive events.     * @param listener The listener to register.     */    public synchronized void addChangeListener(javax.swing.event.ChangeListener listener) {        if (listener == null) return;        if (changeListenerList == null) {            changeListenerList = new java.util.ArrayList();        }        changeListenerList.add(listener);    }        /**      * Removes ChangeListener from the list of listeners.     * @param listener The listener to remove.     */    public synchronized void removeChangeListener(javax.swing.event.ChangeListener listener) {        if (changeListenerList != null) {            changeListenerList.remove(listener);        }    }        /**      * Notifies all registered listeners about the event.     *     * @param event The event to be fired     */    private void fireChangeListenerStateChanged(javax.swing.event.ChangeEvent event) {        java.util.ArrayList list;        synchronized (this) {            if (changeListenerList == null) {                return;            }            list = (java.util.ArrayList) changeListenerList.clone();        }        for (int i = 0; i < list.size(); i++) {            ((javax.swing.event.ChangeListener) list.get(i)).stateChanged(event);        }    }        /**      * Event fired when the selected day changes.     * @param e event fired     */    public void stateChanged(ChangeEvent e) {        fireChangeListenerStateChanged(e);    }        /**      * Sets the month shown.     * @param month month to show     */    private void setShowingMonth(int month) {        Calendar cal = new GregorianCalendar(showingyear, month, 1);        for (int i = 0; i < months.length; i++) {            //cal.setTime(months[i].getMonth());            //cal.add(Calendar.MONTH, cal.get(Calendar.MONTH) - month + i);            months[i].setMonth(cal.getTime());            /*months[i].setSelectionOffset((month + i) * 42);            months[i].setSelectionOffset(cal.get(Calendar.MONTH));*/            cal.add(Calendar.MONTH, 1);        }        minDate = months[0].getMinDate();        maxDate = months[months.length - 1].getMaxDate();        refreshSelection();    }        /**      * Sets the year shown.     * @param year the year to show     */    private void setShowingYear(int year) {        showingyear = year;        for (int i = 0; i < months.length; i++) {            cal.setTime(months[i].getMonth());            cal.set(Calendar.YEAR, year);            months[i].setMonth(cal.getTime());        }        refreshSelection();    }        /**      * Getter for property date.     * @return Value of property date.     */    public Date getDate() {        return date;    }        /**      * Setter for property date.     * @param date New value of property date.     */    public void setDate(Date date) {        if (date == null) return;        this.date = date;        cal.setTime(date);        if (!isShowing(date)) {            showMonth(date);        }        dateSelectionModel.setSelectedDate(date);        refreshSelection();        repaint();    }        /**      * Getter for property workingdays.     * @return Value of property workingdays.     */    public boolean[] getWorkingdays() {        return this.workingdays;    }        /**      * Setter for property workingdays.     * @param workingdays New value of property workingdays.     */    public void setWorkingdays(boolean[] workingdays) {        boolean[] old = this.workingdays;        this.workingdays = workingdays;        for (int i = 0; i < months.length; i++) {            months[i].setWorkingdays(workingdays);        }        firePropertyChange("workingDays", old, workingdays);    }        /**      * Getter for property renderer.     * @return Value of property renderer.     */    public DayRenderer getRenderer() {        return months[0].getRenderer();    }        /**      * Setter for property renderer.     * @param renderer New value of property renderer.     */    public void setRenderer(DayRenderer renderer) {        dayrenderer = renderer;        for (int i = 0; i < months.length; i++) {            months[i].setRenderer(renderer);        }    }        /**      * Getter for property model.     * @return Value of property model.     */    public DataModel getModel() {        return months[0].getModel();    }        /**      * Setter for property model.     * @param model New value of property model.     */    public void setModel(DataModel model) {        datamodel = model;        for (int i = 0; i < months.length; i++) {            months[i].setModel(model);        }    }        /**      * Getter for property firstDayOfWeek.     * @return Value of property firstDayOfWeek.     */    public int getFirstDayOfWeek() {        return months[0].getFirstDayOfWeek();    }        /**      * Setter for property firstDayOfWeek.     * @param firstDayOfWeek New value of property firstDayOfWeek.     */    public void setFirstDayOfWeek(int firstDayOfWeek) {        if ((firstDayOfWeek == Calendar.SUNDAY) || (firstDayOfWeek == Calendar.MONDAY)) {            int old = months[0].getFirstDayOfWeek();            if (firstDayOfWeek == months[0].getFirstDayOfWeek()) return;            for (int i = 0; i < months.length; i++) {                months[i].setFirstDayOfWeek(firstDayOfWeek);            }            refreshSelection();            repaint();            firePropertyChange("firstDayOfWeek", old, firstDayOfWeek);        }    }        /** Refreshes the display of this month. */    public void refresh() {        for (int i = 0; i < months.length; i++) {            months[i].refresh();        }    }        /**      * Getter for property headerRenderer.     * @return Value of property headerRenderer.     */    public HeaderRenderer getHeaderRenderer() {        return months[0].getHeaderRenderer();    }        /**      * Setter for property headerRenderer.     * @param headerRenderer New value of property headerRenderer.     */    public void setHeaderRenderer(HeaderRenderer headerRenderer) {        headerrenderer = headerRenderer;        for (int i = 0; i < months.length; i++) {            months[i].setHeaderRenderer(headerRenderer);        }    }        /**      * Getter for property orientation.     * @return Value of property orientation.     */    public int getOrientation() {        return orientation;    }        /**      * Getter for property scrollPosition.     * @return Value of property scrollPosition.     */    public int getScrollPosition() {        return scrollPosition;    }        /**      * Setter for property scrollPosition.     * @param scrollPosition New value of property scrollPosition.     */    public void setScrollPosition(int scrollPosition) {        if (scrollPosition == this.scrollPosition) {            return;        }        int old = this.scrollPosition;        this.scrollPosition = scrollPosition;        if (orientation == HORIZONTAL) {            remove(abajo);        } else {            remove(ys);            remove(scroll);        }        layoutScrollAndYear();        firePropertyChange("scrollPosition", old, scrollPosition);    }        /**      * Getter for property yearPosition.     * @return Value of property yearPosition.     */    public int getYearPosition() {        return this.yearPosition;    }        /**      * Setter for property yearPosition.     * @param yearPosition New value of property yearPosition.     */    public void setYearPosition(int yearPosition) {        if (yearPosition == this.yearPosition) {            return;        }        int old = this.yearPosition;        this.yearPosition = yearPosition;        if (orientation == HORIZONTAL) {            remove(abajo);        } else {            remove(ys);            remove(scroll);        }        layoutScrollAndYear();

⌨️ 快捷键说明

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