有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java Swing中的小问题

我已经定义了类ToolTipUI,它扩展了BasicToolTipUI,用于绘制swing组件的TipText,我使用分隔符“|”(垂直条)来区分TipText的两个阶段。 此分隔符之前的所有文本都被视为普通工具提示文本,而此分隔符之后的所有文本都被视为加速器绑定文本

正如您所知,竖条(“|”)是字符串中常用的字符。如果是这种情况,则不应将其视为分隔符,它具有实际意义。例如:

label.setToolTipText("<HTML><BODY><LEFT>V1|V2</BODY></HTML>"); Normal use
label.setToolTipText("<HTML><BODY><LEFT>V1V2</BODY></HTML> | ctrl+v"); Use as delimiter

我的问题是ToolTipUI现在不知道如何识别这个不同,我无法将分隔符“|”更改为另一个特殊值

有人知道吗

谢谢


共 (1) 个答案

  1. # 1 楼答案

    如果您不能使用Mark Elliot的建议将参数作为两个单独的字符串传递,那么沿着以下思路进行的操作可能会有所帮助,也可能会使事情变得更糟:

      private int delimPosition(String s) {
        int eos = s.toLowerCase().lastIndexOf("</html>");
        return s.indexOf('|', eos+1);
      }
    

    (作为s.indexOf('|')的替代品,我猜您目前正在使用)

    尽管我怀疑,一旦所有的关键案例都解决了,这种方法的复杂性可能会显著上升。现在重构可能更好