Я делаю клиент Twitter (настольное приложение) на Java, я также использую API twitter4j. мне удалось выполнить поиск твитов, и я возвращаю результаты, и я показываю их в Jlist. Что я хочу, так это то, что я хочу показать твиты красиво в списке, а не только как текст .. показать изображение пользователя, твит, твитнуть ... и т. Д. Всю эту информацию .. Кроме того, добавьте дополнительные данные, такие как звездный рейтинг .. как я могу добавить это в JList? может ли Jlist содержать разные объекты. Например, Jpanels.JLists с набором объектов
ответ
Вместо этого я предлагаю вам поставить набор JPanel, внутри JScrollPane ,
Средство визуализации JList должно быть JComponent, поэтому вы можете использовать любой объект Swing, включая JPanels.
Вы также можете использовать HTML в JLabel, если это проще сделать, чем использовать JPanel.
Чтобы использовать пользовательский визуализатор, вы делаете что-то вроде этого ..
myList.setCellRenderer(new CustomRenderer());
, а затем создать средства визуализации, как этот
public class CustomRenderer extends DefaultListCellRenderer {
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean hasFocus) {
JPanel panel = new JPanel();
// set up the panel for your exact display requirements.
return(panel);
}
}
спасибо, я это сделал, но теперь, когда я добавляю Jpanel, если у него есть кнопки или какие-либо другие компоненты, к которым они недоступны .. они отображаются только – AhmadAssaf
элементы теперь недоступны в списке, я могу выбрать любой .. могу ли я получить некоторую информацию об этом, пожалуйста, – AhmadAssaf
Предлагается использовать JTable, который имеет несколько столбцов вместо JList.
Также предлагаю использовать GlazedList с, что позволяет легко отображать списки с полями в JTable, чтобы они автоматически обновлялись при изменении базового списка.
Вот пример некоторого кода, который я написал недавно, который показывает что-то подобное:
private void bindEmailTargetTable(NotificationModel newModel) {
JTable table = getUI(UIKey.EMAIL_TARGET_TABLE);
EventList<EmailTarget> displayList = newModel.getEmailTargets();
TableFormat<EmailTarget> tf = new TableFormat<EmailTarget>()
{
@Override public int getColumnCount() {
return 4;
}
private final String[] columns = { "address", "description", "msg left", "msg limit" };
@Override public String getColumnName(int col) {
return this.columns[col];
}
@Override public Object getColumnValue(EmailTarget item, int col) {
switch (col)
{
case 0:
return item.getAddress();
case 1:
return item.getDescription();
case 2:
return item.getRemainingMessages();
case 3:
return item.getMessageLimit();
default:
return "";
}
}
};
EventTableModel<EmailTarget> etm = new EventTableModel<EmailTarget>(displayList, tf);
table.setModel(etm);
}
Это 33 строк кода, чтобы сделать JTable
и сделать его автоматически обновляться, чтобы отобразить 4 поля каждой EmailTarget
в EventList<EmailTarget>
,
Для содержимого нетекстового поля вам просто нужен пользовательский TableCellRenderer.
AS Джейсон предложил лучше пойти на jtable вместо JLIst. На самом деле вы можете использовать любые классы Java, основанные на таблицах, которые имеют расширенную функциональность над JTables. JIDE - одна из таких библиотек, но ее коммерческая. вы можете найти и найти много.
- 1. Селектор с набором объектов
- 2. JLists с Arraylists?
- 3. Связать ListView с набором объектов
- 4. Использование JLists и ListModels
- 5. 2 Jlists с одинаковыми записями
- 6. Сопоставление компонента с набором объектов значений
- 7. Crystal Report с набором объектов Object
- 8. Использование Automapper с набором абстрактных объектов
- 9. Борясь с этим смешанным, вложенным набором объектов
- 10. Флажок привязки пружин с набором объектов
- 11. Синхронизация коллекции обернутых объектов с набором развернутых объектов
- 12. lodash: массив фильтров объектов с различным набором объектов
- 13. Django Managers - Получение объектов с непустым набором связанных объектов
- 14. Ошибка 2062: сопоставление между набором объектов и набором ассоциаций
- 15. Добавление объектов из разных JLists в один JList
- 16. Заполните JLists внутри GridBagLayout
- 17. Получение выбранных значений jlists
- 18. Петля с набором и набором?
- 19. Neo4j сохранить действие над набором объектов
- 20. Удаление выбранного элемента списка (связанного с набором объектов) с MVVM
- 21. Linq для проблем с производительностью объектов с большим набором данных
- 22. Проблема с сериализацией при возврате объекта с набором объектов навигации
- 23. Использование JLists в Java Swing
- 24. Перетаскивание классов между двумя JLists
- 25. Изменение JLists при нажатии JRadioButton
- 26. Возвращение вектора атрибутов, разделяемых набором объектов
- 27. Несколько JLists на одном JPanel
- 28. Специальная модель связующего для сложной модели с набором полиморфных объектов
- 29. Ограничение внешнего ключа, EF с набором дочерних объектов
- 30. Джанго: получение ManyToManyField объектов с минимальным набором запросов
привет, я пытался это сделать .. он добавляет jpanel тот, который я разработал .., но если бы я попытался добавьте еще, что он не возьмет его .. может у знать почему? i do .. jScrollPane2.getViewport(). add (новый JPanel()); – AhmadAssaf
Добавьте панель JScrollPane. Затем добавьте все панели к этой панели. – jzd
спасибо .. сильно работает .. спасибо – AhmadAssaf