2013-06-28 4 views
1

У меня есть список данных, которые я получил из моего Json-файла с помощью Json Jackson, как я могу заполнить jTable из этого списка?Заполнение jTable с помощью списка

[{"id":1,"name":"Bambola","description":"Opis...","contact_number":"022\/349-499","email":"","address":"Svetosavksa 23","geo_latitude":"44.96868000000000","geo_longitude":"20.28140000000000","created_at":"2013-06-24 14:15:08","updated_at":"2013-06-24 14:15:08","deleted_at":null,"publication_starts":"1991-05-24 01:00:00","publication_ends":"1991-05-24 01:00:00"},{"id":2,"name":"Master","description":"Opis...","contact_number":"022\/349-123","email":"","address":"Svetosavksa 24","geo_latitude":"44.96653000000000","geo_longitude":"20.28170000000000","created_at":"2013-06-24 14:15:08","updated_at":"2013-06-24 14:15:08","deleted_at":null,"publication_starts":"0000-00-00 00:00:00","publication_ends":"0000-00-00 00:00:00"},{"id":3,"name":"Tritel","description":"Opis...","contact_number":"022\/321-499","email":"","address":"Svetosavksa 25","geo_latitude":"44.96654000000000","geo_longitude":"20.28170000000000","created_at":"2013-06-24 14:15:08","updated_at":"2013-06-24 14:15:08","deleted_at":null,"publication_starts":"0000-00-00 00:00:00","publication_ends":"0000-00-00 00:00:00"}] 

Используя парсер Json Jackson, я заполнил список этими данными.

List<Advertisement> advertisements = mapper.readValue(url, new TypeReference<List<Advertisement>>(){}); 

Теперь я хочу, чтобы заполнить JTable, я использовал GUI NetBeans строителя создать рамку и таблицу. Имя таблицы - рекламаList_JT. До сих пор я пробовал этот фрагмент кода, найденный в simillar вопросе здесь, на сайте.

DefaultTableModel model = new DefaultTableModel(); 
     for (Advertisement adv : advertisements) { 
      Object[] o = new Object[3]; 
      o[0] = adv.getName(); 
      o[1] = adv.getPublication_starts(); 
      o[2] = adv.getPublication_ends(); 
      model.addRow(o); 
     } 
     advertisementList_JT.setModel(model); 

При этом фрагмент таблицы, когда я начинаю применение только идет серым и ничего не происходит, посмотрел через отладчик и без каких-либо ошибок, либо.

+0

Посмотрите на AbstractTableModel, вот несколько очень хороших попыток за последние два месяца. – mKorbel

+0

. Основной код, который вы отправили, выглядит отлично, но мы не знаем контекста того, как вызывается код. Если кадр серый, я бы предположил, что вы фактически не добавляете таблицу в фрейм. Возможно, у вас есть экземпляр и локальные переменные. Добавьте в код некоторые отладочные инструкции, видите ли, что код еще выполняется. – camickr

+0

@mKorbel: Почему вам не нравится DefaultTableModel? Для большинства таблиц не требуется настраиваемая модель таблицы. –

ответ

1

Я думаю, что это происходит потому, что вы не поставили заголовок таблицы. См., Если это работает:

Object[] columnNames = {"Name", "Starts", "Ends"}; 
DefaultTableModel model = new DefaultTableModel(new Object[0][0], columnNames); 
     for (Advertisement adv : advertisements) { 
      Object[] o = new Object[3]; 
      o[0] = adv.getName(); 
      o[1] = adv.getPublication_starts(); 
      o[2] = adv.getPublication_ends(); 
      model.addRow(o); 
     } 
     advertisementList_JT.setModel(model); 

Другая возможность заключается в том, что список объявлений пуст;

+0

Да, это сработало спасибо. Названия столбцов были проблемой T, если бы я написал имена столбцов внутри построителя GUI, которые они применили к таблице, похоже, что с .setModel я заменил все предыдущие конфигурации, выполненные с помощью GUI BUilder. –

Смежные вопросы