2013-11-04 58 views
0

我想要一個javafx標籤自動更新爲正在輸入到文本框中的內容,目前我只有在單擊輸入時才更改它。我正在使用swing和javafx的組合。在鍵盤輸入上更改標籤javafx

這是可能的嗎?

感謝

exprField.addActionListener(new ActionListener() { 
     @Override 
     public void actionPerformed(ActionEvent e) { 
      Platform.runLater(new Runnable() { 
       @Override 
       public void run() { 
       fxLabel.setText(exprField.getText()); 

         } 
      }); 
     } 
    }); 

回答

3

您可以使用綁定機制用於這一目的。

GridPane p = new GridPane(); 

    TextField tf = new TextField("DEFAULT"); 
    Label l1 = new Label("..."); 
    l1.textProperty().bind(tf.textProperty()); 
    p.add(tf, 0, 0); 
    p.add(l1, 1, 0); 
    Scene sc = new Scene(p, 500, 500); 
    arg0.setScene(sc); 
    arg0.show(); 

此代碼將文本框和標籤設置爲一個網格窗格。標籤的文本屬性綁定到文本字段的文本屬性,這意味着只要文本字段發生更改,標籤的文本就會根據文本字段中現有的任何文本進行更新。

更多信息可以在這裏找到:http://docs.oracle.com/javafx/2/binding/jfxpub-binding.htm