JavaFx 代码:
public class MyController implements Initializable {
@FXML
private TextArea editor;
@Override
public void initialize(URL url, ResourceBundle resourceBundle) {
editor.onKeyReleasedProperty().addListener(new ChangeListener<KeyEvent>() {
@Override
public void changed(ObservableValue<? extends KeyEvent> o, KeyEvent oldVal, KeyEvent newVal) {
System.out.println("changed!");
}
});
}
}
在new ChangeListener...
这行代码无法编译,错误为:
Can't resolve method 'addListener
(javafx.beans.value.ChangeListener<javafx.scene.input.KeyEvent>>)'
我一次又一次地更改代码,但找不到使其编译的方法。
(我使用的是 Intellij-IDEA 13 + jdk 1.7)
最佳答案
您确定要向 onKeyReleasedProperty()
属性添加监听器吗?
我猜你正在寻找
editor.addEventHandler(KeyEvent.KEY_RELEASED, new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent event) {
}
});
或者简称为
editor.setOnKeyReleased(new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent event) {
}
});
否则 assylias 的答案是正确的。
关于JavaFX:为什么无论我传递给 `changeListener`什么样的 `textArea.getKeyPressedProperty().addListener`都无法编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23578765/