【问题标题】:RichTextFX CodeArea Force Caret to Last ParagraphRichTextFX CodeArea 强制插入符号到最后一段
【发布时间】:2021-04-18 09:55:08
【问题描述】:

我正在设计一个类似控制台的 cmd,我想强制插入符号到最后一行,这样上一行就无法编辑了。

codeArea.currentParagraphProperty().addListener((obs, o, n) -> codeArea.moveTo(codeArea.getLength()));

我使用上述语句强制插入符号到 CodeArea 的最后一个字符,尽管它在我尝试到达上一行时有效,但当我按下退格键时它无法工作,因为它通过删除字符将插入符号移动到上一行。我希望插入符号从包含目录路径的当前段落到代码区域的第一行都不可编辑

【问题讨论】:

  • 这是我的猜测-> 首先,我认为您需要使用TextFormatter。其次,我认为如果有一个或多个换行符,您将需要做一些事情,例如只允许文本在最后一个换行符之后更改。如果有零个换行符,则允许更改文本。我不知道这在代码方面意味着什么。
  • Richtextfx 代码区域中不存在先生文本格式化程序,因此是否有任何其他方法,例如在代码区域上编辑文本之前验证按下的键
  • 对不起,我完全忽略了那部分。有什么方法可以使用StringProperty 来跟上RichTextFX 代码区域中将显示的内容吗?

标签: javafx javafx-11 richtextfx


【解决方案1】:

而不是使用这个。

codeArea.currentParagraphProperty().addListener((obs, o, n) -> codeArea.moveTo(codeArea.getLength()));

使用此代码:

codeArea.currentParagraphProperty().addListener((obs, o, n) -> codeArea.getCaretSelectionBind().moveTo(codeArea.getText().length()));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-10
    • 2021-06-19
    • 1970-01-01
    • 1970-01-01
    • 2012-04-07
    相关资源
    最近更新 更多