我按gui编写二进制文件对象,当我在表中列出它们时,仅出现一行like this
并非所有数据都适用
这是要列出的代码

    DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
    Object rowData[] = new Object[5];
    model.setRowCount(0);
    Apparels a = new Apparels();
    ArrayList<Apparels> app = new ArrayList<Apparels>();

    app = a.listApparels();

    for (Apparels x : app) {
        rowData[0] = x.getStockid();
        rowData[1] = x.getPricePerItem();
        rowData[2] = x.getQuantity();
        rowData[3] = x.getType();
        rowData[4] = x.getCateogryname();

        model.addRow(rowData);

    }

最佳答案

您正在重新使用rowData填充属性,这意味着对于每一行,它将具有相同的数据

也许尝试使用更多类似...

for (Apparels x : app) {
    Object rowData[] = new Object[5];
    rowData[0] = x.getStockid();
    rowData[1] = x.getPricePerItem();
    rowData[2] = x.getQuantity();
    rowData[3] = x.getType();
    rowData[4] = x.getCateogryname();

    model.addRow(rowData);

}


主要问题是,对rowData的引用永远不会更改,但是每个元素中的内容都会更改,因此,一旦完成循环,模型将具有所有指向同一rowData实例的引用列表。

关于java - jTable模型的二进制文件问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47564085/

10-10 19:09