2017-03-22 8 views
0

私はこのfxmlのコントローラクラスにこの機能を持っています。私はこの機能をテキストフィールドから焦点を当てて発射する必要がありますが、シーンビルダーにはonfocusoutに似たイベントはありません。コントロールクラスを使用してこれを達成する方法は?fxmlを使ってjavafxのテキストフィールドのフォーカスを外してイベントをトリガする方法は?

@FXML 
private void ValidateBikeNo(){ 
    Tooltip error = new Tooltip("This bike no exists"); 
    BikeNoIn.setTooltip(error); 
} 

答えて

1

TextFieldにfocusListenerを添付して、その内部でコードを実行することができます。コントローラのinitialize()メソッド内にリスナを添付することができます。

あなたは方法textField.focusedPropertyを(使用する必要が
public class MyController implements Initializable { 
    ... 
    @FXML 
    private Textfield textField; 

    public void initialize() { 
     ... 
     textField.focusProperty.addListener((ov, oldV, newV) -> { 
      if (!newV) { // focus lost 
       // Your code 
      } 
     }); 
    } 
} 
+0

ありがとう、それはあなたの問題を解決した場合、これは答えの横にチェックマークをクリックして、私の問題 – v1shva

+0

を解決しました。 – ItachiUchiha

0

)の代わりに、textField.focusProperty

public class MyController implements Initializable { 
...   
@FXML   
private Textfield textField; 
public void initialize() { 
    textField.focusedProperty().addListener((ov, oldV, newV) -> { 
     if (!newV) { // focus lost 
       // Your code 
      } 
     }); 
    } 
} 
+0

なぜあなたは受け入れられた答えを繰り返すのですか?また間違っていますか?回答はリテラルが正しくないため、 – kleopatra

+0

です。 TextFieldクラスにはメソッドfocusPropertyがないので、textField.focusPropertyの代わりにtextField.focusedProperty()を呼び出さなければなりません。何が問題なのですか? – Dmitry

+0

...あなたの答えを編集した後(ちょうど... ehem ...)、それは見えるかもしれません - とにかく、それはオリジナルのタイプミスです、編集することができます。あなたがそれを必要とする代理人) – kleopatra

関連する問題