問題タブ [beans-binding]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 共有パブリッシャーとロックに関する GlazedLists の PluggableList 要件に対処する方法
ビーンズバインディングを広く使用するJavaプロジェクトでGlazedListsの使用を開始しました(MVVMパターン)。
PluggableList を使用すると、ソース リストをテーブルにバインドし、実行時にソース リストを変更できます。これを実現するには、すべてのソース リストが同じ ListEventPublisher と ReadWriteLock を共有する必要があります。これは、PlugableList がそのソースとロックとプラブリッシャーを共有する必要があるためです。以下の疑似コードに示すように、静的パブリッシャーを作成し、潜在的なソース リストを所有するクラスをロックし、それらの静的値を使用して、クラスのすべてのインスタンス化と PluggableList でリストを作成することによってこれを実現します。
これには2つの懸念があります。
(1) UiController のコンポーネントの特定の要件のため、モデルで決定を下す必要があります。これは MVVM パターンに違反しているようです。
(2) リストが非常に多く、頻繁にアクセスされる場合、リストはすべて同じロックを共有するため、共有ロックはリストのパフォーマンスに影響を与える可能性があります。それ以外の場合、これらのリストのそれぞれは、互いに気にせずに独立して動作できる必要があります。
私はこれについて間違っていますか?ModelClass が特別な UiControllerClass 要件について知る必要がなく、潜在的なパフォーマンス ヒットなしで PluggableLists を機能させるより良い方法はありますか?
java - BindingBeans の複合値が更新されない
次のような単純な POJO があります。
このエンティティは、BindingBeans を使用して JTable にバインドされます。a と b に加えられた変更は適切に処理され、JTable に表示されますが、c は更新されません。
aまたはbが更新された場合、プロパティ変更イベントまたは何かを発生させる必要があると思いますが、実際にはアイデアがありません。何か案は?
編集:
簡単な例を作成しました:
そしてメインクラス
java - バインドされた jtable を org.jdesktop.swingbinding.JTableBinding で更新する
netbeans の右クリック -> バインド -> 要素と更新ボタンを使用して、データベース テーブルにバインドされた jtable を含む jpanel を作成しました。jpanel は、jframe 内にある jtabbedpane 内にあります。要素を追加または削除した後にjtableを更新したいのですが、Googleで見つけた多くの解決策に飽き飽きしましたが、何もうまくいきません。
jpanel クラス:
私が試した解決策:
1
2
3