У меня есть JList заселения списка строкJava JSepartor в JList без использования нонсенса строки в свинге
String[] values = new String[] {"David Pickwell", "-", "Tico", "-", "Jack Wilshere", "-","Nick Johanson"};
Я использовал этот метод в течение многих лет, чтобы добавить JSeparator в GUI с помощью пользовательского ListCellRender. Таким образом, он проверяет, соответствует ли текущая строка «-», она будет отображать разделитель.
public Component getListCellRendererComponent(JList<? extends Object> list, Object value,
int index, boolean isSelected, boolean cellHasFocus) {
...
String str = (value == null) ? "" : value.toString();
if (SEPARATOR.equals(str)) { // What I am talking about
return separator;
}
...
return this;
}
Должен сказать, что мне это не нравится. Он работает, но позже потребуется немного больше работы, чтобы проверить, что строка отправляет запрос ... где-то еще. Итак, я бы хотел:
String[] values = new String[] {"David Pickwell", "Tico", "Jack Wilshere", "Nick Johanson"};
И после каждого элемента будет представлен новый разделитель.
Как я мог это сделать?
Вы можете получить некоторые идеи из [пример] (http://www.jroller.com/santhosh/entry/jcombobox_items_with_separators), который использует 'JComboBox' – MadProgrammer
Это еще проверка для строки , затем вставьте разделитель после него. – lnguyen55
Вы хотите переписать классы ListUI или JList? В принципе, вам потребуется какой-то способ либо вернуть два разных рендеринга ячеек на основе ваших потребностей, либо дополнить процесс рисования. Это сложнее, чем кажется, поскольку вы будете изменять высоту строки и, следовательно, любую функциональность мыши по пути – MadProgrammer