Java 将 object[] 转换为模型

标签 java model-view-controller casting model jtable

我想知道如何将 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)

最佳答案

在没有更多信息的情况下,您最好的选择是明确的手动翻译。而不是:

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 对象支持您的 table 。

关于Java 将 object[] 转换为模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27778000/

相关文章:

java - java中有没有办法识别调用特定方法的对象?

java - Spring Batch ItemReader 处理树结构文件

ios - MVC 中的智能行为(不是计算数据)? iOS

java - 为什么可以将 JFrame 强制转换为 JPanel?

java - 意外的类型安全违规

java - 如何在 Appengine 数据存储区中获取两个日期之间的实体

javascript - MVC JavaScript的window.open添加到url

swift - 如何将模型的 (json) 值发送到 View Controller ?

C++ 继承和成员访问问题

Java Hibernate json无限递归与自引用类