[英]Small problem in Java Swing
我已经定义了 class 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 现在不知道如何识别这个不同,我无法更改分隔符“|” 对特别提议的另一个不寻常的价值。
有人有想法吗?
谢谢
如果您不能使用 Mark Elliot 的建议将参数作为两个单独的字符串传递,那么这些方面的内容可能会有所帮助或使事情变得更糟:
private int delimPosition(String s) {
int eos = s.toLowerCase().lastIndexOf("</html>");
return s.indexOf('|', eos+1);
}
(用作我猜您当前正在使用的s.indexOf('|')
的替代品)。
尽管我怀疑一旦解决了所有极端情况,这种方法的复杂性可能会大大增加。 现在也许更好地重构。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.