1

次の問題: changeListener の命令により、Dialog の後で 2 つの TextField がフォーカスを取得するという動作が発生します。

Postleitzahl がフォーカスを失うと、ダイアログが開きます。[OK] をクリックすると、最初のテキストフィールドだけがフォーカスを得る必要があります。しかし実際には、下のテキストフィールドにもフォーカスが移ります。

メソッド「controlMinChar」は、数値の最小量を設定します。メソッド setMinCharacter はメソッドを使用し、focusedProperty を使用します

  private void setMinCharacter(){

    plz.focusedProperty().addListener(new ChangeListener<Boolean>() {

        @Override
        public void changed(ObservableValue<? extends Boolean> ov, Boolean lostFocus, Boolean getFocus) {

            if(lostFocus){

                     generalControler.controlMinChar(plz, 5, 
                    (Stage) anchorPane.getScene().getWindow(), 
                    errorMessage);

            }

        }
    });


}

あなたが私を助けてくれることを願っています。どうもありがとうございました。

4

1 に答える 1

1

問題は: http://javafx-jira.kenai.com/browse/RT-28363

回避策:

    tf1.focusedProperty().addListener(new ChangeListener<Boolean>() {
        @Override
        public void changed(ObservableValue<? extends Boolean> ov, Boolean lostFocus, Boolean getFocus) {
            if (lostFocus) {
                Platform.runLater(new Runnable() {
                    @Override
                    public void run() {
                        tf1.requestFocus();
                    }
                });
            }
        }
    });
于 2013-02-12T23:05:09.160 に答える