2017-05-22 12 views
1

2つのフィールド(field1、field2)とチェックボックスを持つフォームがあります。フィールドがJavaFXで無効になっている場合のみ、テキストプロパティをバインドする方法

私がそうでなければ、フィールド2内のテキストは、私はそれらを定義するバインディングを使用してこれを管理することができますどのようにフィールド1 内のテキストと同じである必要があり、チェックボックスが選択されている場合は、2番目のフィールド内のテキストを編集可能にする必要があります初期化メソッドで?

答えて

4

このチェックボックスをオフにすると、2番目のテキストフィールドのテキストのバインドを解除する必要があるため、これをバインディングのみで行うことはできません。 (。テキストフィールドにユーザーがタイプエルスあなたが例外を取得します)

あなたはこのような何か行うことができます。チェックボックスが最初にチェックされている場合、あなたは

に追加の呼び出しが必要になります

field2.editableProperty().bind(checkBox.selectedProperty()); 
checkBox.selectedProperty().addListener((obs, wasSelected, isNowSelected) -> { 
    if (isNowSelected) { 
     field2.textProperty().unbind(); 
    } else { 
     field2.textProperty().bind(field1.textProperty()); 
    } 
}); 

field2.textProperty().bind(field1.textProperty()); 

テキストフィールドも最初にバインドされていることを確認してください。

+0

ワンダフル!私の問題を完全に解決しました!速やかなご返信ありがとうございます! – BohdanN

関連する問題