1

以下问题:changeListener中的指令导致两个TextFields在Dialog之后获得焦点的行为。

当 Postleitzahl 失去焦点时,它会打开一个对话框。如果单击确定,则只需第一个文本字段获得焦点。但真正发生的是下面的文本字段也获得了焦点。

方法“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 回答