フォームでボタン (日付の選択) を押すと、その JCalendar で小さなウィンドウが開き、日付が選択されるとフォームに TextField として表示されるという考えがあります。
ライブラリにJDateChooser
存在するクラスを試してみてください。これにより、日付を選択したり、手動で入力したりできます。2 番目の部分については、「日付」プロパティの変更をリッスンし、それに応じてテキスト フィールドのテキストを更新するために、 PropertyChangeListenerJCalendar
を日付チューザに提供する必要があります。たとえば、次のようなものです。
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);