Передача данных из списка в объект [][]

Я получил этот список, который содержит некоторые данные, которые я получаю из файла.

List<String> destinationList = new ArrayList<String>();

Затем у меня есть JTable, в который я хочу перенести данные из списка. Я видел пример ввода данных в JTable:

Object[][] data = {
    {"Kathy", "Smith",
         "Snowboarding", new Integer(5), new Boolean(false)},
    {"John", "Doe",
         "Rowing", new Integer(3), new Boolean(true)},
    {"Sue", "Black",
         "Knitting", new Integer(2), new Boolean(false)},
    {"Jane", "White",
         "Speed reading", new Integer(20), new Boolean(true)},
    {"Joe", "Brown",
         "Pool", new Integer(10), new Boolean(false)}
};

Мне интересно, могу ли я каким-то образом вставить данные из своего списка в данные Object[][], чтобы затем перенести их в свой JTable. Заранее спасибо!


person Fjondor    schedule 30.12.2014    source источник
comment
Вы должны показать нам, как выглядят String в destinationList. Кстати, можно просто написать {"Kathy", "Smith", "Snowboarding", 5, false}.   -  person Paul Boddington    schedule 30.12.2014
comment
Итерация по списку и элементу объявления в массив по вашему желанию   -  person Thusitha Thilina Dayaratne    schedule 30.12.2014
comment
Хорошо, то, что выше, было просто примером из API. Но строки в списке назначения - это просто строки, не знаю, что вы имеете в виду... список заполнен такими местами, как: Париж, Нью-Йорк... и т. д.   -  person Fjondor    schedule 30.12.2014
comment
Если у вас есть список строк, то, возможно, вам следует использовать JList, так как мне кажется, что у вас есть только один столбец данных. Хранение данных строк/столбцов в одном списке — не очень хороший дизайн.   -  person camickr    schedule 30.12.2014


Ответы (1)


Мне интересно, могу ли я каким-то образом вставить данные из моего списка в данные Object[][], чтобы затем перенести их в свой JTable.

Вместо того, чтобы тратить ни минуты на попытки сделать это, я предлагаю вам:

  1. Создайте класс bean-компонента, который упаковывает эту информацию объектно-ориентированным способом (т. е.: Contact).
  2. Преобразуйте каждую строку в вашем списке в объект Contact. Возможно, String# split() может помочь разделить поля.
  3. Используйте более сложную модель таблицы, чем DefaultTableModel, что позволяет работать напрямую с бинами (объектами). Что-то вроде DataObjectTableModel или RowTableModel / ListTableModel / BeanTableModel
  4. Установите свой список в качестве базовых данных в табличной модели.

Такой подход сэкономит вам время, например, когда вы хотите использовать информацию о выбранных контактах. Не говоря уже о том, что это лучшая практика, чем работа с массивами, с точки зрения ООП.

person dic19    schedule 30.12.2014
comment
Не совсем уверен, как это сделать, но позволит ли это изменить таблицу, если данные изменяются из файла, из которого я получаю данные. Добавить строки или удалить. Никогда не слышал о классе бобов: с - person Fjondor; 30.12.2014
comment
Не совсем уверен, как все это сделать... Сделайте шаг вовремя и попросите помощи в процессе. Возможно, вы можете показать, как выглядит строка в текстовом файле. ...позволит ли это изменить таблицу в случае изменения данных из файла, из которого я получаю данные. Нет. Если файл изменен, вам придется перечитать файл и обновите данные в вашей табличной модели. Никогда не слышал о классе bean-компонента Класс bean-компонента — это просто POJO с атрибутами (или членами класса) и геттерами и сеттерами для доступа к ним извне. @Фьондор - person dic19; 30.12.2014