JavaFx:在对话框之后,两个文本字段获得焦点而不是一个

时间:2013-02-12 20:54:15

标签: javafx-2

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

当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);

            }

        }
    });


}

我希望你能帮助我。 非常感谢你。

1 个答案:

答案 0 :(得分: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();
                    }
                });
            }
        }
    });