是否可以限制JavaFX HTMLEditor中的输入长度?我尝试向编辑器添加一个事件处理程序,并在内容达到预定义的限制时使用该事件,但它似乎不起作用。
editor.addEventHandler(KeyEvent.KEY_TYPED, new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent arg0) {
if (editor.getHtmlText().length() >= MY_LIMIT) {
arg0.consume();
}
}
});
有人设法实现这一目标吗?它甚至可能吗?
提前致谢。
答案 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);
}
}
});