Beans Binding を使用してデータベースからのデータが取り込まれる jTable があります。テーブルの検索機能を実装したい。Bean バインディングを使用してこれを実現する次のチュートリアルに出くわしました。
https://weblogs.java.net/blog/pkeegan/archive/2008/06/using_beans_bin.html
私はそれを機能させることができません。作成したサンプル アプリケーションを実行すると、検索テキスト フィールドに「javax.swing.table.TableRowSorter@16994fe8」などの予期しない値が表示されます。これは実際には、TableRowSorter オブジェクトを文字列に変換するコンバーター クラスの convertForward() メソッドから来ています。テキスト フィールドに何かを入力しても何も起こりません。
jTable の autoCreateRowSorter プロパティを true に設定しました。テーブルはデフォルトのテーブル モデルを使用した Bean バインディングを使用して設定されるため、カスタム テーブル モデルは使用していません。
コンバーター クラスの getTable()、setTable()、または convertReverse() メソッドが呼び出されないことに注意してください。その過程で何かを逃したかどうか疑問に思っています。
以下は、検索テキストフィールドをjTableにバインドするために使用しているコードです。
BindingGroup bindingGroup = new BindingGroup();
RowSorterToStringConverter bindingConverter = new RowSorterToStringConverter();
Binding searchBinding = Bindings.createAutoBinding(
UpdateStrategy.READ_WRITE,
employeeTable,
ELProperty.create("${rowSorter}"),
txtSearch,
BeanProperty.create("text"));
searchBinding.setConverter(bindingConverter);
bindingGroup.addBinding(searchBinding);
bindingGroup.bind();
この点でどんな助けでも大歓迎です。