gpt4 book ai didi

java - JEdi​​torPane 中 键的行为(使用 HtmlEditorKit)

转载 作者:行者123 更新时间:2023-11-30 10:19:08 25 4
gpt4 key购买 nike

如果我把光标放在 <p>A line of text</p> 的中间然后点击 enter 我明白了

<p>A line</p>
<p>of text</p>

这是在我的 Linux 开发机器上。

当我在 Windows 机器上运行相同的应用程序时,我得到

<p>A line
of text</p>

即一个\n插入而不是创建额外的 <p>元素。自 \n在 HTML 中只是呈现为一个空格,enter 在 Windows 上基本上不起作用。

问题:我如何强制插入<p> 在 Windows 上 enter 时的行为?

最佳答案

根据 Key Bindings Enter 键映射到“insert-break”Acton。

在 Windows 中,此操作在 DefaultEditorKit 中定义:

public static class InsertBreakAction extends TextAction {

/**
* Creates this object with the appropriate identifier.
*/
public InsertBreakAction() {
super(insertBreakAction);
}

/**
* The operation to perform when this action is triggered.
*
* @param e the action event
*/
public void actionPerformed(ActionEvent e) {
JTextComponent target = getTextComponent(e);
if (target != null) {
if ((! target.isEditable()) || (! target.isEnabled())) {
UIManager.getLookAndFeel().provideErrorFeedback(target);
return;
}
target.replaceSelection("\n");
}
}
}

并按照您的建议简单地添加“\n”。

如果您在 Linux 上有不同的行为,那么我猜一个自定义 Action 被添加到 HTMLEditorKit 以插入段落标记。

因此我建议您需要找到该 Action,然后将其添加到 Windows 平台的 HTMLEditorKit 中。

关于java - JEdi​​torPane 中 <enter> 键的行为(使用 HtmlEditorKit),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48804748/

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