Bunu önce söylemeliyim, bu bir Tablo hücresinin oluşturulması ile ilgili DEĞİLDİR.JTable satırında özel bir nesne nasıl ayarlanır
DB'mde User
nesnesini temel alan bir 2B dizi kullanarak oluşturduğum TableModel işte burada.
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);
Benim sorunum ben Tablo seçilen satır kullanarak, geri User
nesneyi almak nasıl. Yeni bir User
nesnesini oluşturamadığımı ve satır verileriyle doldurmamayı unutmayın. Sorgulanan User
nesnesini almalıyım (userList
'daki nesneler). Yani, bir tablo satır ile bir Nesne ayarlamak için herhangi bir yolu var mı?
İşte benim VstTableItemModel
sınıfım. Örneğin bir model oluşturmadan önce User
nesne kadar, modele doğrudan ekleyebilir ve modeli sizin için işi yapmak için izin Yerine yarılma
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' değiştirebiliyor musunuz? – MadProgrammer
Evet. Onu buraya göndermek zorunda mıyım? – shan
Hayır, sadece bunu kolaylaştırır;) – MadProgrammer