@Override public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { ignoreAction = true; Date valueAsDate = getValueAsDate(value); getEditor().setDateTime(valueAsDate); ignoreAction = false; return datePicker; }
public static void main(String[] args) { SwingUtilities.invokeLater(() -> { TimeZone utcZone = TimeZone.getTimeZone("UTC"); Calendar utc = Calendar.getInstance(utcZone); Date date = utc.getTime(); DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.MEDIUM); dateFormat.setTimeZone(utcZone); DateFormat timeFormat = DateFormat.getTimeInstance(DateFormat.MEDIUM); timeFormat.setTimeZone(utcZone); JFrame frame = new JFrame(); frame.setTitle("Date Time Picker"); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); DateTimePicker dateTimePicker = new DateTimePicker(date, Locale.ENGLISH, dateFormat, timeFormat); dateTimePicker.setFormats(dateFormat); dateTimePicker.setTimeFormat(timeFormat); dateTimePicker.setDateTime(date); frame.getContentPane().add(dateTimePicker); frame.pack(); frame.setVisible(true); }); } }
public DateTimePicker(Date d, Locale l, DateFormat dateFormat, DateFormat timeFormat) { super(d, l); if (!dateFormat.getTimeZone().equals(timeFormat.getTimeZone())) { throw new IllegalStateException(String.format("Time zone mismatch: dateFormat is [%s] but timeFormat is [%s]", dateFormat, timeFormat)); } timeZone = timeFormat.getTimeZone(); getMonthView().setSelectionModel(new SingleDaySelectionModel()); getMonthView().setTimeZone(timeZone); setLinkPanel(createTimePanel()); setFormats(dateFormat); setTimeFormat(timeFormat); setDateTime(d); }