2013-11-04 19 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