private JXDatePicker createDatePicker(Date initialDate) { final JXDatePicker dp = new JXDatePicker(initialDate); dp.setFormats(PhotoCopyToolPanel.DATE_PICKER_FORMAT); dp.setEditable(true); dp.addActionListener( new ActionListener() { long lastTime = dp.getDate() == null ? -1 : dp.getDate().getTime(); @Override public void actionPerformed(ActionEvent e) { Date d = dp.getDate(); long t = -1; if (d != null) t = d.getTime(); if (t != lastTime) { lastTime = t; if (imagesLoaded) selection = getSelectedImages(SelectImageDialog.this); loadImagesAsync(); } } }); dp.getEditor() .addFocusListener( new FocusAdapter() { @Override public void focusLost(FocusEvent e) { try { dp.commitEdit(); } catch (ParseException pe) { } } }); return dp; }
public void setEditable(boolean editable) { if (dataComponent instanceof JTextComponent) { ((JTextComponent) dataComponent).setEditable(editable); } else if (dataComponent instanceof JScrollPane) { Component subComponent = ((JScrollPane) dataComponent).getViewport().getView(); if (subComponent instanceof JTextComponent) { ((JTextComponent) subComponent).setEditable(editable); } } else if (dataComponent instanceof JXDatePicker) { ((JXDatePicker) dataComponent).setEditable(editable); } else { dataComponent.setEnabled(editable); } }