JavaFX:为什么无论我传递给 `changeListener`什么样的 `textArea.getKeyPressedProperty().addListener`都无法编译

标签 java compilation javafx type-systems

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/

相关文章:

ios - 无法在移动设备上禁用 JavaFX WebView 超链接

Java保存配置文件,多操作系统

java - 当我读取 GPS 位置时 Android 返回 null

pdf - 如何编译 Latex 文档中 24 页的前 2 页?

c++ - 在编译时展开循环

java - updateProgress(double,double) 在任务中具有 protected 访问权限

java - 收到回调后从 JNI 调用 Java 方法

java - 哪个xml序列化库是性能导向的?

c - 管道回声到gcc?

java - netbeans构建项目错误