JavaFX文本更改事件

时间:2013-06-22 18:51:00

标签: textarea javafx addeventlistener

我在FXML文档中设计了一个表单。我可以处理按键与事件。但我需要文本更改事件。我正在使用Netbeans 7.3。项目中有三个文件:SampleControler,Sample.FXML和Sample.java。我找到了一个代码,但我还没有解决使用它的问题。

input.textProperty().addListener(new ChangeListener<String>() {
        @Override 
        public void changed(ObservableValue ov, String t, String t1) {                
            System.out.println("Changed.");              
        }    
    });

我的TextArea代码是:

<TextArea layoutX="10" layoutY="50" maxHeight="125" minHeight="125" maxWidth="570" minWidth="570" editable="true" fx:id="input" prefWidth="570" prefHeight="125" />

我该怎么办?

1 个答案:

答案 0 :(得分:10)

在与您的fxml相关联的控制器中,获取TextArea,您可以这样做:

yourTextArea.textproperty()。addListener ...

public class Example implements Initializable {

    @FXML
    private TextArea textArea;

    @Override
    public void initialize(URL url, ResourceBundle resourceBundle) {
        textArea.textProperty().addListener(new ChangeListener<String>() {
            @Override
            public void changed(ObservableValue<? extends String> observableValue, String s, String s2) {

            }
        });
    }
}

控制器上的varibale名称需要与fxml中的fx:id具有相同的名称