Cómo establecer un objeto personalizado en una fila JTable
Debería decir esto primero, NO se trata de renderizar una celda de tabla.
Aquí está el TableModel que estoy construyendo usando una matriz 2D basada en unUser
objeto en mi base de datos.
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);
Mi problema es cómo puedo conseguir unUser
Objeto atrás, utilizando la fila seleccionada en la tabla. Tenga en cuenta que no puedo hacer una nuevaUser
Objetar y rellenar con los datos de la fila. Debo obtener la consultaUser
objeto (objetos enuserList
). Entonces, ¿hay alguna forma de establecer un Objeto con una fila de tabla?
Aquí está miVstTableItemModel
clase.
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];
}
}