代码之家  ›  专栏  ›  技术社区  ›  Cam

为jeditorpane文本框创建左边距

  •  0
  • Cam  · 技术社区  · 15 年前

    编辑——简而言之,我正在寻找一种可靠的方法,可以在Jeditorpane中添加一个左边距(如果你愿意,请继续阅读我的问题)。


    我正在尝试在Jeditorpane中设置一些文本样式,并且已经相当成功。我面临的唯一问题是,似乎不可能创造利润。

    基本上,我已经扩展了plainview并重写了drawUnselectedText方法。现在我只让它把文本染成红色并改变字体。我还重写了drawSelectedText方法来为文本着色。

    无论文本是否被选中,无论光标位置如何,这都是一致的。- 只要我没有保证金 .

    但是,如果我为Jeditorpane设置了一个边界,则Jeditorpane在大多数情况下只起作用。唯一不起作用的是 当选定内容从任何行的最左边字符开始时 . 在这种情况下,只需忽略边距,所选文本就会出现在jeditorpane的最左边。

    我知道这是一个大多数人可能没有经历过的非常具体的问题,我在网上没有发现任何关于这一点的信息,但我希望这里的人能有一个解决方案。

    有什么想法吗?即使是任何能让我用其他方法设定利润的方法,也会非常有帮助。

    1 回复  |  直到 15 年前
        1
  •  0
  •   Cam    15 年前

    我放弃了寻找解决这个问题的优雅方法。基本上,我创建了一个hack,它测试是否存在会出现错误的条件(从左边选择,等等),如果存在,它会调整文本的呈现。

    我真的不喜欢黑客,因为他们通常不利于可移植性和可维护性,但这似乎是可行的,所以我想我会把它抽象出来,希望它不会破坏任何东西。

    在任何情况下,这是工作的关键点。我没有收到任何答案,但我确信有人至少想了点什么,所以谢谢:)

    顺便说一句,如果有人能想出一个优雅的解决方案,我还是会接受这个方案而不是我自己的答案(我两天都不能)。


    编辑:这是我喜欢Java的原因之一。黑客不太可能导致可移植性问题——尽管这与渲染(它通过与图形对象的交互工作)有关,但它仍然可以在任何操作系统上工作。