Отключите разбор HTML в JComboBox.addItem(o)

Я ищу способ отключить разбор HTML метода addItem() в JComboBox().

JComboBox jHighlight = new JComboBox();
for (int i = 0; i < tl.size(); i++) {
     //getTagname() returns a string like "br", "a", "body" or "html"
     jHighlight.addItem("<" + tl.get(i).getTagname() + ">");
}

Вывод в JComboBox будет выглядеть так:

<a>
<br>
<body>
         //notice the blank space where <html> should be
<link>
<meta>

Таким образом, проблема в том, что html-тег анализируется, так как я добавляю знак <перед ним, как я могу обойти это? Вместо этого я попытался использовать "\ u003C", но он все равно анализируется как html, и тег не отображается в списке.

2 ответа

Я полагаю, что любое из следующих двух утверждений сделает это:

highlight.putClientProperty("html.disable", true);  

highlight.putClientProperty(
    javax.swing.plaf.basic.BasicHTML.propertyKey, null
);  

Если у вас есть центральное место, где вы создаете и настраиваете компоненты, вы можете рассмотреть возможность его установки для всех. Дизайн HTML-текста в компонентной поддержке не очень хорош.

Используйте "& lt;" вместо "<" и (возможно) оберните его в HTML.;)

<html>&lt;html></html>
Другие вопросы по тегам