テーブルの更新イベントをキャッチして、現在の値が何であるか、影響を受ける列と行の新しい値を確認したい場合があります。それが期待どおりでない場合、私は更新を取り消して元に戻すことを希望します。これは、TableModelListenerを使用するのは非常に難しく、スタックオーバーフローエラーが発生し続けることがあります。手動で状態を維持して再帰的に再呼び出しすることなく元の状態に戻すことができないためです。スイングでテーブル更新イベントをキャンセルする
1
A
答えて
3
独自のTableModelを作成(またはDefaultTableModelまたはAbstractTableModelを拡張)し、setValueAtをオーバーライドします。そこでは、基礎となるモデルを(super.setValueAt()を使用して)更新することも、スローすることもできます。スーパークラスを呼び出さない限り、変更は決して通過しないため、古い値です。
+0
美しい..なぜ私はそれを考えなかったのですか:) ..ありがとうKylar .. – sethu
+0
editCellAt()とeditingStopped()の間のどこかで傍受することもできるかもしれませんが、@Kylarは最も単純です提案。 – user949300
関連する問題
- 1. ObjectDataSource更新イベント中にGridview編集をキャンセルします
- 2. jQuery - ドロップダウンの確認ダイアログで変更イベントをキャンセルする
- 3. テーブルを更新するためのMySQLイベントの作成
- 4. アンドロイドでイベントをキャンセルする方法
- 5. Windows Phoneでイベントをキャンセルする
- 6. 更新/イベントのページリクエストを変更する
- 7. バインディングを使用してWPFで更新をキャンセルする
- 8. リモートosgiインスタンスを自動更新する(スイングGUI)
- 9. Javaスイングの背景の図面を更新するには?
- 10. テーブルを更新する
- 11. Delphi:OnBeforePostイベントでのTDataSet.Postのキャンセル
- 12. キーアップで更新イベントが発生する
- 13. セカンダリJavaScriptイベントのキャンセル
- 14. システム日付でテーブルを更新する
- 15. PhpMyAdminでテーブルを更新する質問
- 16. PHPフォームでmysqliテーブルを更新する
- 17. Sybase:トップキーワードでテーブルを更新する
- 18. SQL Serverでテーブルを更新する
- 19. Mysqlでテーブルを更新する
- 20. オンザフライでテーブルのメタデータを更新する
- 21. BindingSourceでテーブルを更新するには?
- 22. PHPでMYSQLテーブルを更新する
- 23. C#TextBox。ASPXのCancelイベントをキャンセルする
- 24. 入力タイプ= "ファイル"のイベントをキャンセルする
- 25. スイングでフレームをテーブルに追加
- 26. データバインディングアクションは、選択された変更イベントをキャンセルします。
- 27. Textboxバインディング更新イベント
- 28. イベントの更新div
- 29. スイング:ミリ秒ごとにグラフィックスを更新しますか?
- 30. winformsでのデータバインディング:「キャンセル」をクリックしても更新されます
TableModelEventが起動されると、データはモデル内で既に変更されています。イベントをキャンセルするには遅すぎます。モデルが変更されないようにするには、セルのエディションをキャンセルする必要があります。 –
私はJBが、私が手動で状態を維持しようとしていた理由と解決策が逆火されたことを理解しています。セルのエディションをキャンセルするには、どのイベントを捕まえなければなりませんか?そして私はそれをどのように取り消すのですか? ..ありがとう。 – sethu
http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#validtextを参照してください。 –