2015-04-24 3 views
0

Возможно ли связать или показать только некоторые из ListModel или List Когда я привяжу его к элементу Jlist?Jlist, связанный с DefaultListModel, можно отображать только некоторые элементы?

В моем примере у меня есть модель списка из массива класса (pizza), который имеет несколько переменных, я хочу только показать их, но все они отображаются в строке.

listModel = new DefaultListModel(); 
    listModel = ListHandler.populateListModel(listModel); 
    // This returns listModel binded from array of a class<Pizza> 

    list = new JList(listModel); 
    list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 
    list.setSelectedIndex(0); 
    JScrollPane listScrollPane = new JScrollPane(list); 
    Apanel.add(listScrollPane, BorderLayout.CENTER); 

Этот код, когда затем отобразить все элементы в каждой строке пиццы, Можно просто показать 1 varible от пиццы? Сыр, например, в списке только ...?

+1

Что-то вроде [это] (http://stackoverflow.com/questions/27372678/filtering-jcombobox/27372985#27372985)? – MadProgrammer

+2

1) Чтобы лучше помочь, отправьте сообщение [MCVE] (http://stackoverflow.com/help/mcve) (минимальный полный проверяемый пример) или [SSCCE] (http://www.sscce.org/) (Short , Self Contained, Правильный пример). 2) BTW - когда дело доходит до фильтрации, я бы использовал [один столбец 'JTable'] (http://stackoverflow.com/q/28621617/418556). –

+0

@MadProgrammer Нет Я не пытаюсь отфильтровать .. только весь вывод каждого класса в списке сбрасывается по строке (за элемент) в Jlist ... Я хотел бы показать только varible class .. для Пример pizza.chesseType или ?? elementdata [0] .chesseType ?? в рекурсивном списке. – Ryan86

ответ

2

Объект рендеринга ячейки по умолчанию вызывает toString() на объектах значения в вашей модели. Вы можете сделать что-либо из них:

  • Override/изменить значение, возвращаемое toString() быть текст, который вы хотите показать
  • Измените визуализатор ячейки для форматирования объекта значение отличается от значения по умолчанию

Я бы предпочел второй, так как вам может понадобиться toString(), чтобы иметь другое значение по какой-либо другой причине.

См http://docs.oracle.com/javase/7/docs/api/javax/swing/ListCellRenderer.html