Java 使单击制表符可以正确更改插入符号

Java 使单击制表符可以正确更改插入符号,java,swing,user-interface,Java,Swing,User Interface,在大多数被认为是体面的文本编辑器中,单击制表符(\t)会根据单击的位置将插入符号更改为字符的左侧或右侧 下面举例说明: 左图显示,如果单击,插入符号将位于角色的左侧。右侧显示,如果单击,我的插入符号将位于角色的右侧 在我的编辑器中,插入符号仅在光标实际放置在两个字符之间时才会更改。我一直在尝试更改我的TabStops中的属性,但这些似乎都不起作用 问题是:如何使我的制表符单击正确响应光标位置?我想您使用的是JEditorPane实例 实际上这取决于你使用的编辑器。对于最简单的情况,您可以尝试覆

在大多数被认为是体面的文本编辑器中,单击制表符(
\t
)会根据单击的位置将插入符号更改为字符的左侧或右侧

下面举例说明:

左图显示,如果单击,插入符号将位于角色的左侧。右侧显示,如果单击,我的插入符号将位于角色的右侧

在我的编辑器中,插入符号仅在光标实际放置在两个字符之间时才会更改。我一直在尝试更改我的
TabStop
s中的属性,但这些似乎都不起作用


问题是:如何使我的制表符单击正确响应光标位置?

我想您使用的是JEditorPane实例

实际上这取决于你使用的编辑器。对于最简单的情况,您可以尝试覆盖

public int viewToModel(float x, float y, Shape a, Position.Bias[] biasReturn)
LabelView类的方法。实际上,它返回单击位置(x,y)的模型位置(插入符号)


如果您使用HTMLEditorKit,它将非常困难。

好吧,我实际上使用的是JTextPane。重写不起作用-奇怪的是,它根本没有被调用。还有其他想法吗?你是否忽略了视图?或者JTextPane的方法?@StanislavL请看这段代码有什么问题(请看我删除的帖子)@mKorbel对我来说没什么问题。它仍然提供默认行为。@Bart Pelle默认情况下,没有任何其他想法,您必须在局部变量中为JTextComponent发布一个SSCCE/MCVE,简短、可运行、可编译,并带有硬编码值