3

我已经尝试填写 JTable 大约三天了。我需要做的就是用“Artikel”对象填充一个向量向量,填充一个标题向量并将这两个向量绑定到一个 JTable。

我可以使用自定义 AbstractTableModel 来管理它,但我无法创建 addColumn() 方法。所以,我放弃了这种方式。现在我只使用标准 DefaultTableModel 但现在我无法正确填充我的 JTable。我将所有对象都放在第一列中,而不是分开到所有列中: 故障截图

图形用户界面

我的Artikel课程:

public class Artikel {

private String EnitiativeRef;
private String Brand;
private String pnb;
.
.
.
public Artikel(){        
}

public String getEnitiativeRef() {
    return EnitiativeRef;
}

public void setEnitiativeRef(String EnitiativeRef) {
    this.EnitiativeRef = EnitiativeRef;
}
.
.
.
}

我的按钮代码:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

    ICsvBeanReader inFile = null;
    String[] header = {};
    Vector<Vector<Artikel>> data = null;

    try {
        inFile = new CsvBeanReader(new FileReader("C:\\609661920071022111.csv"), CsvPreference.STANDARD_PREFERENCE);

        header = inFile.getHeader(true);

        data = new Vector<Vector<Artikel>>();

        Artikel artikel;
        while ((artikel = inFile.read(Artikel.class, header, cellProcessor)) != null) {
            Vector<Artikel> tmpVector = new Vector<Artikel>();
            tmpVector.addElement(artikel);
            data.addElement(tmpVector);
        }

    } catch (Exception ex) {
        System.out.println("FOUT: " + ex.toString());
    } finally {
        try {
            inFile.close();
        } catch (IOException ex) {
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    tblAll.setModel(new DefaultTableModel(data, new Vector(Arrays.asList(header))));
    tblAll.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
}

你能告诉我我做错了什么或指导我做这件事的正确方法吗?我将非常感谢您的感激帮助。

4

1 回答 1

1

向量向量中的每个元素代表一行,这些元素向量的每个元素代表一列。

您正在将单元素向量添加到主向量,并且该元素是您尚未实现该toString方法的类的对象。

你可能走错路了。

于 2012-11-11T23:44:50.037 回答