2013-02-12 90 views
1

以下問題: changeListener中的指令導致兩個TextField在對話框後獲取焦點的行爲。JavaFx:對話後,兩個文本字段獲得焦點,而不是一個

當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

我是正確,那還有一種情況,當兩個控制現場獲得焦點?這很簡單 - 只需在http://javafx-jira.kenai.com/secure/Dashboard.jspa中的javafx上,在控件上提出問題。創建問題 - >運行時/錯誤。不要忘記提供一個代碼(可複製的測試用例)。但以前請檢查一下,您是否擁有最新的JavaFX可訪問版本。 – 2013-02-12 21:02:37

+0

是的,在對話框中按OK後。 這裏是一張圖片http://www.fotos-hochladen.net/uploads/focus1n9gipsb10z.png 這裏是一個圖片的以下行爲: http://www.fotos-hochladen.net/view/ focus2cd7ioyvr3g.png (對不起,需要10個聲望才能設置圖片) – Sonja 2013-02-12 22:19:09

+0

您使用哪種操作/方法,將焦點移至plz(即 - 將焦點移回)? – 2013-02-12 22:42:51

回答

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(); 
        } 
       }); 
      } 
     } 
    }); 
+0

非常感謝你,希望這個問題很快就會正確。同時,我對javafx非常沉迷,我必須說服我的專家將他的教學大綱從swing更改爲javafx,但是這樣的問題將會非常困難:) 無論如何,謝謝! – Sonja 2013-02-13 00:09:10

+0

您可以對該問題進行投票,以便儘快修復該問題。 (或者投票給它的dublicate,如果它將被標記爲公佈某個其他問題) – 2013-02-13 00:20:57

相關問題