Небольшая проблема в Java Swing - PullRequest
0 голосов
/ 12 июля 2011

Я определил класс ToolTipUI, который расширил BasicToolTipUI для предложения рисования 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

Моя проблема в ToolTipU. Сейчас я не знаю, как определить это, я не могу изменить разделитель "|"к другому необычному значению для специального предложения.

У кого-нибудь есть идеи?

Спасибо

1 Ответ

2 голосов
/ 12 июля 2011

Если вы не можете использовать предложение Марка Эллиота для передачи аргумента в виде двух отдельных строк, то что-то в этом духе может либо помочь, либо усугубить ситуацию:

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

(Будет использоваться вместо s.indexOf('|'), который, я полагаю, вы используете в настоящее время).

Хотя я подозреваю, что вы, вероятно, в конечном итоге столкнетесь со значительной эскалацией сложности этого метода, как только будут рассмотрены все основные случаи. Может быть, лучше провести рефакторинг сейчас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...