3

我在 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" />

我该怎么办?

4

1 回答 1

12

在与您的 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) {

            }
        });
    }
}

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

于 2013-06-22T19:13:39.593 回答