我想知道如何将选定的JTable行放入模型中。
现在我得到了类似的东西。
int selectedRowIndex = tabelSpelers.getSelectedRow();
int selectedColumnIndex = tabelSpelers.getColumnCount();
Object[] tableData = new Object[selectedColumnIndex];
for (int j = 0 ; j < selectedColumnIndex; j++){
tableData[j] = tabelSpelers.getValueAt(selectedRowIndex,j);
}
Speler selectedSpeler = (Speler) tableData;
JOptionPane.showMessageDialog(this, tableData);
模型看起来像这样:
public Speler(int speler_id, String voornaam, String achternaam, String adres, String postcode, String woonplaats, String telefoonnummer, String email, int rating, boolean isBekend)
答案 0 :(得分:0)
没有进一步信息的最佳选择是明确的手动翻译。而不是:
Object[] tableData = new Object[selectedColumnIndex];
for (int j = 0 ; j < selectedColumnIndex; j++){
tableData[j] = tabelSpelers.getValueAt(selectedRowIndex,j);
}
Speler selectedSpeler = (Speler) tableData;
在最后一行产生ClassCastException,你会写:
Speler selectedSpeler = new Speler();
selectedSpeler.setFoo(tabelSpelers.getValueAt(selectedRowIndex, 1));
selectedSpeler.setBar(tabelSpelers.getValueAt(selectedRowIndex, 2));
等等,填充selectedSpeler对象的每个属性。
但是,您可能希望extend AbstractTableModel as in this example直接使用Speler对象支持您的表格。
答案 1 :(得分:0)
它必须比使用所有的设置者更容易。
使用JList,你可以使用它:
Speler selectedKlant = (Speler) this.listSpelers.getSelectedValue();
有没有办法用Jtable来解决这个问题?