Как напечатать часть элемента жирным шрифтом с помощью JList

Я использую DefaultListCellRenderer для рендеринга массива строк (на самом деле это не массив строк, просто чтобы объяснить мой вопрос). Функция getListCellRendererComponent принимает массив и должна печатать элемент этого массива жирным шрифтом. Моя текущая идея состоит в том, чтобы использовать теги Html (например, <b>theElement</b>), но я читал, что это не очень хорошая практика. Код ниже - моя текущая идея.

if (value instanceof ArrayList) {
     ArrayList<String> al = (ArrayList<String>) value   
     String s = "<html><b>" + al.get(0) + "</b></html>\n";
     al.remove(0);
     for(String c : al)
         s += c + "\n";
     setText(s);

person Hunsu    schedule 07.03.2014    source источник


Ответы (1)


Вы можете использовать HTML в JList, и я не знаю, почему это было бы плохой практикой - если только, когда пользователь не выбирает строку, вы теперь проверяете, является ли выбранный элемент <b>thing</b>, а не просто thing. Но если вы делаете что-то лучше, чем сравнение строк в выбранных элементах списка, это не должно быть проблемой.

Если вы используете DefaultListCellRenderer, это единственный известный мне способ сделать часть элемента полужирным.

См. также Могут ли элементы в JList быть отформатированы как HTML

person David Koelle    schedule 07.03.2014
comment
ок так и сделаю! - person Hunsu; 07.03.2014