Java DefaultTableModel addRow方法以以下格式添加行:column\u name=column\u value,而不仅仅是column\u value

Java DefaultTableModel addRow方法以以下格式添加行:column\u name=column\u value,而不仅仅是column\u value,java,swing,jtable,defaulttablemodel,Java,Swing,Jtable,Defaulttablemodel,试图在我的JTable中添加新行时遇到问题。我的JTable正在使用DefaultTableModel,下面是我用于添加新行的代码: AddDialog diag = new AddDialog(MainWindow.getInstance(),"Add Entity",true,tab); diag.setVisible(true); if(diag.isSaved()) { entity = diag.getEntity(); table = diag.getTableMod

试图在我的
JTable
中添加新行时遇到问题。我的
JTable
正在使用
DefaultTableModel
,下面是我用于添加新行的代码:

AddDialog diag = new AddDialog(MainWindow.getInstance(),"Add Entity",true,tab);
diag.setVisible(true);
if(diag.isSaved()) {
    entity = diag.getEntity();
    table = diag.getTableModel();
    table.getEntities().add(entity);
    if(tab instanceof TablePreview) {
        tablePreview = (TablePreview)tab;
        tableModel = (DefaultTableModel) (tablePreview.getTableView().getModel());
        Object[] newRow = new Object[entity.getAttributes().size()];
        int i=0;
        for (Entry<String, Object> entry : entity.getAttributes().entrySet()) { 
            newRow[i++]=entry;
        }
        tableModel.addRow(newRow);

    }else if(tab instanceof ChildTablePreview) {
        System.out.println("Tab is instanceof ChildTablePreview");
    }
}else {
    System.out.println("Entity not saved!");
}
AddDialog diag=newaddDialog(MainWindow.getInstance(),“添加实体”,true,tab);
diag.setVisible(真);
如果(诊断isSaved()){
entity=diag.getEntity();
table=diag.getTableModel();
table.getEntities().add(实体);
如果(表预览的选项卡实例){
tablePreview=(tablePreview)选项卡;
tableModel=(DefaultTableModel)(tablePreview.getTableView().getModel());
Object[]newRow=新对象[entity.getAttributes().size()];
int i=0;
对于(条目:entity.getAttributes().entrySet()){
newRow[i++]=条目;
}
tableModel.addRow(newRow);
}else if(ChildTablePreview的选项卡实例){
System.out.println(“选项卡是ChildTablePreview的实例”);
}
}否则{
System.out.println(“实体未保存!”);
}
diag是
AddDialog
的实例,它扩展了
JDialog
,当我填写对话框的字段并单击save时,它会创建一个
实体
类,我想将其作为新行添加到表中。逻辑工作正常,但当行被插入表中时,出于某种原因,表如下所示:

如果有人知道我如何解决这个问题,我会非常感谢你的帮助

您需要使用

数据的显示方式取决于列的类别。默认呈现程序只为列中的对象调用.toString()函数。如果列包含键值对,则这些键值对通常显示为key=value


您需要使用TableColumn方法setCellRenderer设置渲染器。您可以将此渲染器定义为仅显示该列中对象的值。

要更快获得更好的帮助,请发布或。问题在于您添加到模型中的数据。如果只想查看值,则只添加值。