JavaFX HTMLEditor:限制文本长度

时间:2015-07-09 14:42:37

标签: java javafx html-editor

是否可以限制JavaFX HTMLEditor中的输入长度?我尝试向编辑器添加一个事件处理程序,并在内容达到预定义的限制时使用该事件,但它似乎不起作用。

editor.addEventHandler(KeyEvent.KEY_TYPED, new EventHandler<KeyEvent>() {
    @Override
    public void handle(KeyEvent arg0) {
        if (editor.getHtmlText().length() >= MY_LIMIT) {
            arg0.consume();
        }
    }
});

有人设法实现这一目标吗?它甚至可能吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

我确定有更优雅的方法可以解决此问题,但以下代码应该可以使用:

您需要两个私有类属性

private static final int MAX_LENGTH = 250;
private String content;

以及以下事件处理程序

editor.setOnKeyPressed(new EventHandler<KeyEvent>() {
    @Override
    public void handle(KeyEvent event) {
        if(editor.getHtmlText().length() <= MAX_LENGTH) {
            content = editor.getHtmlText();
        }
    }
});

editor.setOnKeyReleased(new EventHandler<KeyEvent>() {
    @Override
    public void handle(KeyEvent event) {
        if(editor.getHtmlText().length() > MAX_LENGTH) {
            editor.setHtmlText(content);
        }
    }
});