Я должен сказать это сначала, это НЕ о рендеринге ячейки таблицы.
Вот модель таблицы, которую я создаю, используя 2D-массив на основе объекта User
в моей БД.
List<User> userList = userManagerService.getAllUsers();
/* String[] col_user = {"Username", "Name", "Phone", .... } */
String[][] data = new String[userList.size()][col_user.length];
int i = 0;
for (User user : userList) {
String[] userdata = new String[col_user.length];
userdata[0] = user.getUserUsername();
userdata[1] = user.getUserName();
userdata[2] = user.getUserPhone();
userdata[3] = user.getUserNic();
userdata[4] = user.getUserAddress();
userdata[5] = user.getUserEmail();
data[i++] = userdata;
}
VstTableItemModel tiModel = new VstTableItemModel(data, col_user);
dataTable.setModel(tiModel);
Моя проблема в том, как я могу вернуть объект User
, используя выбранную строку в таблице. Обратите внимание, что я не могу создать новый объект User
и заполнить его данными строки. Я должен получить запрошенный объект User
(объекты в userList
). Итак, есть ли способ установить объект со строкой таблицы?
Вот мой VstTableItemModel
класс.
public class VstTableItemModel extends AbstractTableModel {
ArrayList<Object[]> data;
String[] header;
public VstTableItemModel(Object[][] obj, String[] header) {
this.header = header;
data = new ArrayList<Object[]>();
for (int i = 0; i < obj.length; ++i) {
data.add(obj[i]);
}
}
@Override
public int getRowCount() {
return data.size();
}
@Override
public int getColumnCount() {
return header.length;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
return data.get(rowIndex)[columnIndex];
}
@Override
public String getColumnName(int index) {
return header[index];
}
}
VstTableItemModel
? - person MadProgrammer   schedule 24.09.2012