Java 记录被重写,而不是在添加新值后在jtable上添加新行

Java 记录被重写,而不是在添加新值后在jtable上添加新行,java,swing,list,jtable,Java,Swing,List,Jtable,我有以下代码,我正在实现这些代码,以便在列表中添加值后更新jTable。我需要在jtable上添加行,但它在第一行被覆盖。它应该保留第一个值,并在新行中添加新值。但不是这样。任何解决我问题的办法 private void populateTableByRecentlyAddedSubjectName(String subjectName) { Vector<String> tableHeaders = new Vector<String>(); Vecto

我有以下代码,我正在实现这些代码,以便在列表中添加值后更新
jTable
。我需要在
jtable
上添加行,但它在第一行被覆盖。它应该保留第一个值,并在新行中添加新值。但不是这样。任何解决我问题的办法

private void populateTableByRecentlyAddedSubjectName(String subjectName) {
    Vector<String> tableHeaders = new Vector<String>();
    Vector tableData = new Vector();
    tableHeaders.add("Subject Name");

    java.util.List<Subject> subjectList = new ArrayList<>();
    Subject subject = new Subject();
    subject.setSubjectName(subjectName);
    subjectList.add(subject);

    if (subjectList != null) {
        for (Subject subjectObj : subjectList) {
            Vector<Object> obj = new Vector<>();
            System.out.println("Name " + subjectObj.getSubjectName());
            obj.add(subjectObj.getSubjectName());

            tableData.add(obj);
        }
    }
    subjectListTable.setModel(new DefaultTableModel(tableData, tableHeaders));
}
private void populateTableByRecentlyAddedSubjectName(字符串subjectName){
Vector tableHeaders=新向量();
向量表数据=新向量();
表格标题。添加(“主题名称”);
java.util.List subjectList=新的ArrayList();
主题=新主题();
subject.setSubjectName(subjectName);
主题列表。添加(主题);
if(subjectList!=null){
for(主题主题对象:主题列表){
向量obj=新向量();
System.out.println(“Name”+subjectObj.getSubjectName());
add(subjectObj.getSubjectName());
tableData.add(obj);
}
}
setModel(新的DefaultTableModel(tableData,TableHeader));
}
在我看来,您每次都在创建一个新的TableModel,因此很明显数据正在被替换

我需要在jtable上添加行

您通过更新TableModel中的数据来更新表中的现有数据。因此,您的代码应该类似于:

DefaultTableModel model = (DefaultTableModel)table.getModel();
model.addRow(....);

@KalathokiL.,在我看来,您正在尝试向TableModel添加ArrayList。这不是它的工作方式。您只需从文本字段添加字符串。如果列名突然从一个标题更改为4个不同的列名,那么在代码中的某个地方,表的TableModel发生了更改。由您来完成一些基本的调试。我们无法在这方面帮助您,因为我们无法访问您的代码。如果您需要更多帮助,请发布适当的
SSCCE
,而不仅仅是几行随机代码。Sir代码已满。这不是随机的代码行。只是我没有添加实体类主题。有什么新想法(除此之外)可以满足我的要求吗?@KalathokiL<代码>安全气囊系统代码已满。这不是随机代码行。是,这是随机代码行。如何编译和执行该代码。如果您不知道什么是
SSCCE
,请搜索论坛。如果你不提供更多的信息,我无法提供更多的帮助。现在您可以复制过去并在您的系统上运行。希望现在我能得到准确的答案solution@KalathokiL. 使用addRow(…)方法(如我在初始答案中所建议的)的代码在哪里?当您只需要一列时,为什么最初要将DefaultTableModel创建为4列?我建议您学习如何正确使用IDE。我不使用IDE,所以我帮不了你。
DefaultTableModel model = (DefaultTableModel)table.getModel();
model.addRow(....);