आप swingx JXDatePicker घटक का विस्तार कर सकते हैं:
"JXDatePicker केवल समय बिना दिनांकों संभालती अक्सर हम उपयोगकर्ता एक दिनांक और समय चुनें होने देना होता है यह कैसे उपयोग करने के लिए का एक उदाहरण है।। JXDatePicker एक साथ तारीख और समय को संभालने के लिए। "
http://wiki.java.net/twiki/bin/view/Javadesktop/JXDateTimePicker
संपादित करें: यह लेख वेब से गायब हो गया, लेकिन जैसा कि SingleShot की खोज की, यह अभी भी एक इंटरनेट संग्रह में उपलब्ध है। बस सुनिश्चित करने के लिए, यहां पूर्ण कार्य उदाहरण है:
import org.jdesktop.swingx.calendar.SingleDaySelectionModel;
import org.jdesktop.swingx.JXDatePicker;
import javax.swing.*;
import javax.swing.text.DefaultFormatterFactory;
import javax.swing.text.DateFormatter;
import java.text.DateFormat;
import java.text.ParseException;
import java.util.*;
import java.awt.*;
/**
* This is licensed under LGPL. License can be found here: http://www.gnu.org/licenses/lgpl-3.0.txt
*
* This is provided as is. If you have questions please direct them to charlie.hubbard at gmail dot you know what.
*/
public class DateTimePicker extends JXDatePicker {
private JSpinner timeSpinner;
private JPanel timePanel;
private DateFormat timeFormat;
public DateTimePicker() {
super();
getMonthView().setSelectionModel(new SingleDaySelectionModel());
}
public DateTimePicker(Date d) {
this();
setDate(d);
}
public void commitEdit() throws ParseException {
commitTime();
super.commitEdit();
}
public void cancelEdit() {
super.cancelEdit();
setTimeSpinners();
}
@Override
public JPanel getLinkPanel() {
super.getLinkPanel();
if(timePanel == null) {
timePanel = createTimePanel();
}
setTimeSpinners();
return timePanel;
}
private JPanel createTimePanel() {
JPanel newPanel = new JPanel();
newPanel.setLayout(new FlowLayout());
//newPanel.add(panelOriginal);
SpinnerDateModel dateModel = new SpinnerDateModel();
timeSpinner = new JSpinner(dateModel);
if(timeFormat == null) timeFormat = DateFormat.getTimeInstance(DateFormat.SHORT);
updateTextFieldFormat();
newPanel.add(new JLabel("Time:"));
newPanel.add(timeSpinner);
newPanel.setBackground(Color.WHITE);
return newPanel;
}
private void updateTextFieldFormat() {
if(timeSpinner == null) return;
JFormattedTextField tf = ((JSpinner.DefaultEditor) timeSpinner.getEditor()).getTextField();
DefaultFormatterFactory factory = (DefaultFormatterFactory) tf.getFormatterFactory();
DateFormatter formatter = (DateFormatter) factory.getDefaultFormatter();
// Change the date format to only show the hours
formatter.setFormat(timeFormat);
}
private void commitTime() {
Date date = getDate();
if (date != null) {
Date time = (Date) timeSpinner.getValue();
GregorianCalendar timeCalendar = new GregorianCalendar();
timeCalendar.setTime(time);
GregorianCalendar calendar = new GregorianCalendar();
calendar.setTime(date);
calendar.set(Calendar.HOUR_OF_DAY, timeCalendar.get(Calendar.HOUR_OF_DAY));
calendar.set(Calendar.MINUTE, timeCalendar.get(Calendar.MINUTE));
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
Date newDate = calendar.getTime();
setDate(newDate);
}
}
private void setTimeSpinners() {
Date date = getDate();
if (date != null) {
timeSpinner.setValue(date);
}
}
public DateFormat getTimeFormat() {
return timeFormat;
}
public void setTimeFormat(DateFormat timeFormat) {
this.timeFormat = timeFormat;
updateTextFieldFormat();
}
public static void main(String[] args) {
Date date = new Date();
JFrame frame = new JFrame();
frame.setTitle("Date Time Picker");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
DateTimePicker dateTimePicker = new DateTimePicker();
dateTimePicker.setFormats(DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.MEDIUM));
dateTimePicker.setTimeFormat(DateFormat.getTimeInstance(DateFormat.MEDIUM));
dateTimePicker.setDate(date);
frame.getContentPane().add(dateTimePicker);
frame.pack();
frame.setVisible(true);
}
}
वाह इतना आसान और अच्छा है! धन्यवाद आप महान हैं! – JavaNullPointer
आप दिनांक चुनने के लिए जेडीएटीपीकर: http://jdatepicker.org जैसी लाइब्रेरी का भी उपयोग करना चाह सकते हैं। – juanheyns
[LGoodDatePicker] (https://github.com/LGoodDatePicker/LGoodDatePicker) लाइब्रेरी में एक अच्छा ** DateTimePicker घटक ** शामिल है। (साथ ही साथ व्यक्तिगत डेटपिकर और टाइमपीकर कक्षाएं)। तीन घटक सरल और उपयोग करने में आसान हैं। यहां घटक और डेमो एप्लिकेशन के कुछ स्क्रीनशॉट दिए गए हैं। [स्क्रीनशॉट 1] (http://i.stack.imgur.com/ghDdI.png), [स्क्रीनशॉट 2] (http://i.stack.imgur.com/QXgWE.png)। प्रोजेक्ट होम पेज https://github.com/LGoodDatePicker/LGoodDatePicker पर स्थित है। – BlakeTNC