8

javafx プロパティは、バインディング モデルが強力な通知更新メカニズムを実装しているため、データ モデルを javafx GUI に接続する優れた方法です。

プロパティとバインディングは厳密には GUI 関連ではなく、Javabeans の拡張機能です。

javafx.beans.property.StringPropertyそのため、パッケージへの依存関係を導入せずに、アプリケーション モデル クラスでそれらを使用したいと考えていますjavafx.*

つまり、(更新)
アプリケーションを 2 つのモジュールに分割する必要があるかもしれません。
1 つのモジュールには、データを操作するクラス (Model クラス、MVC といえば) のみを含める必要があります。
2 番目のモジュールには、すべてのグラフィカル GUI が含まれます。つまり、javafx.

私のデータクラスが javafx バインディングを使用する場合は、インポートを導入javafx.beans.anything;します (バインディングが java.* または javax.* の一部であることが最善であるため、「gui ライブラリ」をコアデータ ライブラリに参照することはありません)。 )。javafx が標準リリースに含まれるという事実は、この問題を軽減しますが、これはトリッキーな解決策のようです。結局のところ、swing の「ユーティリティ」クラスに依存する Web アプリケーションを目を細めていると思います。

利用可能なオプションはありますか?

リスナーを使用して通常の JavaBeans プロパティを作成し、それらを fx プロパティにブリッジするために必要な労力を評価しています。

4

2 に答える 2

1

JavaFX オブジェクトを POJO (Plain Old Java Object) 技術にバインドすると、ここで役立つ場合があります。

次の一連のチュートリアルを参照してください: http://ugate.wordpress.com/2012/06/06/javafx-pojo-bindings/

つまり、次の方法を使用して POJO オブジェクトにアクセスできます。

    Person person = new Person();
    PathProperty prop = new PathProperty(
        person, "address.streetName", String.class);
    Bindings.bindBidirectional(prop, myTextField.textProperty());
    prop.set("123 1st Street");
于 2012-09-19T11:27:32.380 に答える
1

Sergey が言ったように: jfxtras ライブラリは BeanPathAdapter API を使用したソリューションです: https://github.com/JFXtras/jfxtras-labs/blob/2.2/src/main/java/jfxtras/labs/scene/control/BeanPathAdapter.java

Granite Data Services を使用する場合は別の方法があります。これには、カスタマイズして javafx プロパティを生成できるクラス ジェネレーターがあります。これは、javafx アプリケーションのサーバー側統合に焦点を当てた美しいフレームワークです。 http://java.dzone.com/articles/data-management-javafx-and

于 2013-09-03T09:09:04.307 に答える