1

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();

この点でどんな助けでも大歓迎です。

4

2 に答える 2