首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >仅对TextArea的第一行在JavaFx中应用空格/填充

仅对TextArea的第一行在JavaFx中应用空格/填充
EN

Stack Overflow用户
提问于 2016-11-17 17:12:59
回答 1查看 798关注 0票数 2

我想在标题标签结束后开始编辑TextArea,如下图所示。同时也展示衬里。显示文本是标签,不是文本区域的文本。

提前谢谢..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-27 19:09:39

您可能有一个专门的TextArea实现,这将阻止编辑填充文本。

示例:

代码语言:javascript
复制
public class FirstLinePaddedTextAread extends javafx.scene.control.TextArea {
    private int offset;

    public FirstLinePaddedTextAread(String padded) {
        this.offset = padded.length();
        this.setText(padded);
        this.positionCaret(offset);

        this.setOnKeyPressed(event -> consumeIfCaretIsOnReadOnlyArea(event));
        this.setOnKeyTyped(event -> consumeIfCaretIsOnReadOnlyArea(event));
        this.setOnKeyReleased(event -> consumeIfCaretIsOnReadOnlyArea(event));
    }

    private void consumeIfCaretIsOnReadOnlyArea(javafx.scene.input.KeyEvent event) {
        if (getCaretPosition() < offset) {
            if (!event.getCode().isNavigationKey())
                event.consume();

        } else if (getCaretPosition() == offset) {
            if (event.getCode() == javafx.scene.input.KeyCode.DELETE
                    || event.getCode() == javafx.scene.input.KeyCode.BACK_SPACE) {
                event.consume();
            }
        }
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40661091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档