gpt4 book ai didi

JavaFX 文本区域 : how to set tabulation width

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:25:46 26 4
gpt4 key购买 nike

如何设置 JavaFX 的制表符宽度 TextArea

当我在 TextArea 中使用制表符(tab 键)时,制表符的宽度很宽。我想控制宽度,即使用 4 个空格。在文档中我找不到执行此操作的方法。

我试过这段代码(其中 taInput 是一个 TextArea),但它没有正常工作:

taInput.setOnKeyPressed(new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent e) {
if (e.getCode() == KeyCode.TAB) {
// TAB SPACES
StringBuilder sb = new StringBuilder(config.getTabSpacesCount());
for (int i=0; i<config.getTabSpacesCount(); i++) {
sb.append(' ');
}
taInput.insertText(taInput.getCaretPosition(), sb.toString());
e.consume();
}
}
});

最佳答案

最后我找到了一个方法来做到这一点。

似乎 setOnKeyPressed() 方法不适合此任务,因为事件是在执行 keyPress 操作之后处理的。

addEventFilter() 在执行事件之前处理事件,因此您可以操纵事件。

我的新代码:

taInput.addEventFilter(KeyEvent.KEY_PRESSED, new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent e) {
if (e.getCode() == KeyCode.TAB) {
String s = StringUtils.repeat(' ', config.getTabSpacesCount());
taInput.insertText(taInput.getCaretPosition(), s);
e.consume();
}
}
});

关于JavaFX 文本区域 : how to set tabulation width,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13773483/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com