JDateChooserを使用してフォームの日付を編集しています。
短いバージョン: JDateChooser でのユーザー日付編集とプログラムによるプロパティ変更を区別する必要があります。
回避策: dateSelectedという名前の保護された JDateChooser プロパティが見つかりました。これはまさに私が必要としているものです (Getter はありません)。おそらく、独自の拡張 JDateChooser クラスを作成し、このプロパティの getter を作成する必要があります。ここでの問題は、このカスタム バージョンを Netbeans パレットからドラッグできるようにしたいのですが、カスタム JDateChooser をドラッグできないことです。
詳細バージョン: まず、データベースから日付を取得し、JDateChooser の setDate() メソッドを使用して GUI で日付を設定します。ユーザーがチューザーで新しい日付を選択したときにデータベースの日付を編集したい。そのために、JDateChooser オブジェクトの PropertyChange イベントをリッスンします (「日付」の変更を探します)。データベースに新しい日付を設定した後、データを更新し (データベースからレコード全体を取得します)、データベースから日付を設定します (エラーが発生した場合は、データベースにあるものに戻されます)この時点で)。
問題は、データベースから日付を設定すると、ユーザーが日付を変更したときに同じイベントが発生し、「更新」メカニズムが JDateChooser フィールドを更新して無限ループになることです。
私の既存の(簡略化された)コード(netbeans):
private void dataStartuChooserPropertyChange(java.beans.PropertyChangeEvent evt) {
if ("date".equals(evt.getPropertyName())) {
JDateChooser wybieraczDat = (JDateChooser) evt.getSource();
updateDatabaseField(wybieraczDat.getDate());
}
}