2016-09-07 20 views
0

私はJavaFX 8を初めて使用しています。しばらくの間、JSF/Primefacesプログラマーになっています。私は現在、FXMLとMVCパターンを持つJavaFXアプリケーションを開発中です。 FXML GUIのJPA 2.1エンティティのコンバーターとその使い方に問題があります。 JSF/Primefacesでは、これは単純で簡単で、コンバータ用の特別なタグと簡単に統合できます。 FXMLでJavaFXに似たソリューションがあるのだろうかと思います。私は助けが必要です。カスタムオブジェクトコンバーターJavaFx FXML

+0

「コンバーター」とはどういう意味ですか?あなたは何に変換していますか? –

+0

@James_Dコンバータは、モデルデータオブジェクトと、レンダリングに適したオブジェクトのString表現との間で、Object-to-StringおよびString-to-Object変換を実行できるJavaクラスを記述するインタフェースです。 – cdaiga

+0

実際に何をしているかによって、この役割はおそらくセルによって行われます。例えば。エンティティを 'TableView'に表示している場合、各列はセルの実装を返すセルファクトリを定義します。セルは、エンティティからのプロパティがどのようにレンダリングされるかを定義します(単純なテキストレンダリングまたはより複雑なものかもしれません)。いくつかの事前定義されたセル実装は、['StringConverter'](http://docs.oracle.com/javase/8/javafx/api/javafx/util/StringConverter.html)のインスタンスを取ります。これは単純なオブジェクト文字列と文字列オブジェクト変換。 –

答えて

1

あなたの記述に最も近いのは、おそらくStringConverterクラスです。仮想化コントロールのbuilt-in cell implementationsListViewTableViewなど)は、StringConverterという適切なインスタンスで設定できます。さらに、たとえば、TextField(または他のテキスト入力コントロール)は、TextFormatterを設定することができ、specifying a StringConverter instanceをインスタンス化することができます。

public class MyEntityStringConverter extends StringConverter<MyEntity> { 

    @Override 
    public String toString(MyEntity myEntity) { 
     return ... ; 
    } 

    @Override 
    public MyEntity fromString(String textSpecification) { 
     return ... ; 
    } 
} 

あなたはその後、APIの多くの部分で使用することができるようになります:

ですから、エンティティクラスMyEntityを持っている場合は、文字列コンバータを作成することができます。

+0

ありがとうございます@ James_D。これは私が欲しかったものです。 – cdaiga

関連する問題