powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / jcalendar
5 сообщений из 5, страница 1 из 1
jcalendar
    #33301498
GlukOza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В своей програме использую клендарь, взятый отсюда:
http://www.toedter.com/en/jcalendar/index.html.

Создаю поле такого типа:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
   JDateChooser data;
         if  (dg== null )
        {
           data =  new  JDateChooser(true);}  // true означает, что поле не должно быть пустым     
         else 
        {
            data =  new  JDateChooser(false);  // 
            data.setDate(dg);
        }

Здесь dg - поле из базы даных тип Date.


По кнопке "сохранить" я проверяю изменялось ли поле data.
У меня проблема такая: если поле data = null, так пусть и в базу записывается как null. А записывается текущая дата. Надо, чтобы поле dg оставалось пустым.

Может кто работал с данным календарем, помогите, пожалуйста, в этой заковырке.
...
Рейтинг: 0 / 0
jcalendar
    #33301521
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
покажи JDateChooser
...
Рейтинг: 0 / 0
jcalendar
    #33301527
GlukOza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
/*
 *  JDateChooser.java  - A bean for choosing a date
 *  Copyright (C) 2004 Kai Toedter
 *  kai@toedter.com
 *  www.toedter.com
 *
 *  This program is free software; you can redistribute it and/or
 *  modify it under the terms of the GNU Lesser General Public License
 *  as published by the Free Software Foundation; either version 2
 *  of the License, or (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU Lesser General Public License for more details.
 *
 *  You should have received a copy of the GNU Lesser General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */
 package  jcalendar.src.com.toedter.calendar;

 import  com.toedter.calendar.JCalendar;

 import  java.awt.BorderLayout;
 import  java.awt.Insets;
 import  java.awt.event.ActionEvent;
 import  java.awt.event.ActionListener;
 import  java.awt.event.KeyEvent;

 import  java.beans.PropertyChangeEvent;
 import  java.beans.PropertyChangeListener;

 import  java.net.URL;

 import  java.util.Calendar;
 import  java.util.Date;
 import  java.util.Locale;

 import  javax.swing.ImageIcon;
 import  javax.swing.JButton;
 import  javax.swing.JPanel;
 import  javax.swing.JPopupMenu;
 import  javax.swing.JSpinner;
 import  javax.swing.SpinnerDateModel;
 import  javax.swing.SwingUtilities;
 import  javax.swing.event.ChangeEvent;
 import  javax.swing.event.ChangeListener;

/**
 * A date chooser containig a date spinner and a button, that makes a JCalendar visible for
 * choosing a date.
 *
 * @author Kai Toedter
 * @version 1.2.2
 */
 public   class  JDateChooser  extends  JPanel  implements  ActionListener, PropertyChangeListener,
    ChangeListener {
     protected  JButton calendarButton;
     protected  JSpinner dateSpinner;
     protected  JSpinner.DateEditor editor;
     protected  JCalendar jcalendar;
     protected  JPopupMenu popup;
     protected  SpinnerDateModel model;
     protected  String dateFormatString;
     protected   boolean  dateSelected;
     protected   boolean  isInitialized;
     protected  Date lastSelectedDate;
     protected   boolean  startEmpty;
     protected  Locale locale;
     protected   boolean  initialized;

//    protected Locale l;

    /**
     * Creates a new JDateChooser object.
     */
     public  JDateChooser() {
         this ( null ,  null , false,  null );
    }

    /**
     * Creates a new JDateChooser object.
     *
     * @param icon the new icon
     */
     public  JDateChooser(ImageIcon icon) {
         this ( null ,  null , false, icon);
    }

    /**
     * Creates a new JDateChooser object.
     *
     * @param startEmpty true, if the date field should be empty
     */
     public  JDateChooser( boolean  startEmpty) {
         this ( null ,  null , startEmpty,  null );
    }

    /**
     * Creates a new JDateChooser object with given date format string. The default date format
     * string is "MMMMM d, yyyy".
     *
     * @param dateFormatString the date format string
     * @param startEmpty true, if the date field should be empty
     */
     public  JDateChooser(String dateFormatString,  boolean  startEmpty) {
         this ( null , dateFormatString, startEmpty,  null );
    }

    /**
     * Creates a new JDateChooser object from a given JCalendar.
     *
     * @param jcalendar the JCalendar
     */
     public  JDateChooser(JCalendar jcalendar) {
         this (jcalendar,  null , false,  null );
    }

    /**
     * Creates a new JDateChooser.
     *
     * @param jcalendar the jcalendar or null
     * @param dateFormatString the date format string or null (then "MMMMM d, yyyy" is used)
     * @param startEmpty true, if the date field should be empty
     * @param icon the icon or null (then an internal icon is used)
     */
     public  JDateChooser(JCalendar jcalendar, String dateFormatString,  boolean  startEmpty,
        ImageIcon icon) {
         if  (jcalendar ==  null ) {
            jcalendar =  new  JCalendar();
        }

         this .jcalendar = jcalendar;

         if  (dateFormatString ==  null ) {
            dateFormatString = "dd.MM.yyyy";
        }

         this .dateFormatString = dateFormatString;
         this .startEmpty = startEmpty;

        setLayout( new  BorderLayout());

        jcalendar.getDayChooser().addPropertyChangeListener( this );
        jcalendar.getDayChooser().setAlwaysFireDayProperty(true); // always fire "day" property even if the user selects the already selected day again
        model =  new  SpinnerDateModel();
        
		/*
		The 2 lines below were moved to the setModel method.
        model.setCalendarField(java.util.Calendar.WEEK_OF_MONTH);
        model.addChangeListener(this);
		*/
        
		// Begin Code change by Mark Brown on 24 Aug 2004
		setModel(model);
        dateSpinner =  new  JSpinner(model) {
			 public   void  setEnabled( boolean  enabled) {
				 super .setEnabled(enabled);
				calendarButton.setEnabled(enabled);
			}
		};
		// End Code change by Mark Brown

        String tempDateFortmatString = "";

         if  (!startEmpty) {
            tempDateFortmatString = dateFormatString;
        }

        editor =  new  JSpinner.DateEditor(dateSpinner, tempDateFortmatString);
        dateSpinner.setEditor(editor);
        add(dateSpinner, BorderLayout.CENTER);

        // Display a calendar button with an icon
         if  (icon ==  null ) {
            URL iconURL = getClass().getResource("images/JDateChooserIcon.gif");
            icon =  new  ImageIcon(iconURL);      
        }

        calendarButton =  new  JButton(icon);
        calendarButton.setMargin( new  Insets( 0 ,  0 ,  0 ,  0 ));
        calendarButton.addActionListener( this );

        // Alt + 'C' selects the calendar.
        calendarButton.setMnemonic(KeyEvent.VK_C);

        add(calendarButton, BorderLayout.EAST);

        calendarButton.setMargin( new  Insets( 0 ,  0 ,  0 ,  0 ));
        popup =  new  JPopupMenu() {
                     public   void  setVisible( boolean  b) {
                         Boolean  isCanceled = ( Boolean ) getClientProperty(
                                "JPopupMenu.firePopupMenuCanceled");

                         if  (b || (!b && dateSelected) ||
                                ((isCanceled !=  null ) && !b && isCanceled.booleanValue())) {
                             super .setVisible(b);
                        }
                    }
                };

        popup.setLightWeightPopupEnabled(true);

        popup.add(jcalendar);
        lastSelectedDate = model.getDate();
        isInitialized = true;
    }

    /**
     * Called when the jalendar button was pressed.
     *
     * @param e the action event
     */
     public   void  actionPerformed(ActionEvent e) {
         int  x = calendarButton.getWidth() - ( int ) popup.getPreferredSize().getWidth();
         int  y = calendarButton.getY() + calendarButton.getHeight();

        Calendar calendar = Calendar.getInstance();
        calendar.setTime(model.getDate());
        jcalendar.setCalendar(calendar);
        popup.show(calendarButton, x, y);
        dateSelected = false;
    }

    /**
     * Listens for a "date" property change or a "day" property change event from the JCalendar.
     * Updates the dateSpinner and closes the popup.
     *
     * @param evt the event
     */
     public   void  propertyChange(PropertyChangeEvent evt) {
         if  (evt.getPropertyName().equals("day")) {
            dateSelected = true;
            popup.setVisible(false);
            setDate(jcalendar.getCalendar().getTime());
            setDateFormatString(dateFormatString);
        }  else   if  (evt.getPropertyName().equals("date")) {
            setDate((Date) evt.getNewValue());
        }
    }

    /**
     * Updates the UI of itself and the popup.
     */
     public   void  updateUI() {
         super .updateUI();

         if  (jcalendar !=  null ) {
            SwingUtilities.updateComponentTreeUI(popup);
        }
    }

    /**
     * Sets the locale.
     *
     * @param l The new locale value
     */

      public   void  setLocale(Locale locale) {
         if  (!initialized) {
             super .setLocale(locale);
        }  else  {
             this .locale = locale;
             super .setLocale(locale);
            //init();
        }
    }
/**    public void setLocale(Locale l) {
        dateSpinner.setLocale(l);
        editor = new JSpinner.DateEditor(dateSpinner, dateFormatString);
        dateSpinner.setEditor(editor);
        jcalendar.setLocale(l);
    }*/

    /**
     * Gets the date format string.
     *
     * @return Returns the dateFormatString.
     */
     public  String getDateFormatString() {
         return  dateFormatString;
    }

    /**
     * Sets the date format string. E.g "MMMMM d, yyyy" will result in "July 21, 2004" if this is
     * the selected date and locale is English.
     *
     * @param dateFormatString The dateFormatString to set.
     */
     public   void  setDateFormatString(String dateFormatString) {
         this .dateFormatString = dateFormatString;
        editor.getFormat().applyPattern(dateFormatString);
        invalidate();
    }

    /**
     * Returns "JDateChooser".
     *
     * @return the name value
     */
     public  String getName() {
         return  "JDateChooser";
    }

    /**
     * Returns the date.
     *
     * @return the current date
     */
     public  Date getDate() {
         return  model.getDate();
    }

    /**
     * Sets the date. Fires the property change "date".
     *
     * @param date the new date.
     */
     public   void  setDate(Date date) {
        model.setValue(date);
         if  (getParent() !=  null ) {
            getParent().validate();
        }
    }

    /**
     * Fires property "date" changes, recting on the spinner's state changes.
     *
     * @param e the change event
     */
     public   void  stateChanged(ChangeEvent e) {
         if  (isInitialized) {
            firePropertyChange("date", lastSelectedDate, model.getDate());
            lastSelectedDate = model.getDate();
        }
    }
    
	/*
	 * The methods:
	 * public JSpinner getSpinner()
	 * public SpinnerDateModel getModel()
	 * public void setModel(SpinnerDateModel mdl)
	 * 
	 * were added by Mark Brown on 24 Aug 2004.  They were added to allow the setting
	 * of the SpinnerDateModel from a source outside the JDateChooser control.  This 
	 * was necessary in order to allow the JDateChooser to be integrated with applications
	 * using persistence frameworks like Oracle's ADF/BC4J.
	 */
    
	/**
	 * Return this controls JSpinner control.
     *
     * @return the JSpinner control
	 */
	 public  JSpinner getSpinner() {
		 return  dateSpinner;
	}
	
	/**
	 * Return the SpinnerDateModel associated with this control.
     *
     * @return the SpinnerDateModel
	 */
	 public  SpinnerDateModel getModel() {
		 return  model;
	}
	
	/**
	 * Set the SpinnerDateModel for this control.  This method allows the JDateChooser
	 * control to be used with some persistence frameworks (ie. Oracle ADF) to bind the
	 * control to the database Date value.
     *
     * @param mdl the SpinnerDateModel
	 */
	 public   void  setModel(SpinnerDateModel mdl) {
		model = mdl;
        model.setCalendarField(java.util.Calendar.WEEK_OF_MONTH);
        model.addChangeListener( this );
        // Begin Code change by Martin Pietruschka on 16 Sep 2004
		 if (dateSpinner !=  null )
			dateSpinner.setModel(model);
		// End Code change by Mark Brown
	}
}
...
Рейтинг: 0 / 0
jcalendar
    #33301538
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
че-то я в упор не вижу конструктора JDateChooser(boolean b)
...
Рейтинг: 0 / 0
jcalendar
    #33301542
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
извиняюсь, увидил
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / jcalendar
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]