2014-02-21 1 views
0

Моя программа использует JDialog s, чтобы открыть формы и в форме, которую я хочу использовать JCalendar, чтобы пользователь мог выбрать дату и использовать ее для других методов.Использование JCalendar в JDialog

Я загрузил JCalendar library. Я прочитал некоторые примеры кодов, но до сих пор не знаю, как это сделать. У меня есть идея, что в форме вы нажимаете кнопку (Выбрать дату) и, как маленькое окно открывается с этим JCalendar, и когда выбрана дата, она отображается в виде текстового поля.

Может кто-нибудь порекомендовать мне какой-нибудь способ сделать это с наименьшими проблемами?

ответ

3

У меня есть идея, что в форме при нажатии кнопки (Выбор даты) и как небольшое окно открывается с этой JCalendar и когда дата выбранного отображается в виде как TextField.

Вы можете попробовать JDateChooser класс, присутствующий в JCalendar библиотеке, которая позволяет выбрать дату или ввести его вручную. Во второй части вам нужно предоставить PropertyChangeListener для выбора даты, чтобы прослушать изменение свойства «дата» и соответствующим образом обновить текст текстового поля. Например, примерно так:

final JTextField textField = new JTextField(15); 

JDateChooser chooser = new JDateChooser(); 
chooser.setLocale(Locale.US); 

chooser.addPropertyChangeListener("date", new PropertyChangeListener() { 
    @Override 
    public void propertyChange(PropertyChangeEvent evt) { 
     JDateChooser chooser = (JDateChooser)evt.getSource(); 
     SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy"); 
     textField.setText(formatter.format(chooser.getDate())); 
    } 
}); 

JPanel content = new JPanel(); 
content.add(chooser); 
content.add(textField); 

JDialog dialog = new JDialog(); 
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); 
dialog.getContentPane().add(content); 
dialog.pack(); 
dialog.setLocationRelativeTo(null); 
dialog.setVisible(true); 
+0

Я не имел в виду изменение текстового поля в реальном времени, сразу после закрытия календаря, дата должна отображаться пользователю. Мой главный вопрос - как реализовать JCalendar или JDateChooser в моем JDialog, как мне его создать и отобразить. – Gedas

+0

@Gedas Извините, я неправильно понял часть текстового поля (просто игнорируйте часть PropertyChangeListener). См. Мое редактирование. Я думаю, это довольно просто, не так ли? – dic19