gpt4 book ai didi

java - DefaultTableModel addRow 方法添加格式为 : column_name = column_value instead of just column_value 的行

转载 作者:行者123 更新时间:2023-12-02 11:50:08 24 4
gpt4 key购买 nike

我在尝试在 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!");
}

diag 是 AddDialog 的实例,它扩展了 JDialog,当我填写对话框的字段并单击“保存”时,它会创建一个 Entity我想将其作为新行添加到表中。逻辑工作正常,但是当行插入表中时,由于某种原因表看起来像这样:

/image/qJeuW.png

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

最佳答案

您需要使用 custom cell renderer in your JTable

数据的显示方式取决于列的类别。默认渲染器只是为列中的对象调用 .toString() 函数。如果该列包含键值对,则它们通常显示为 key=value。

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

关于java - DefaultTableModel addRow 方法添加格式为 : column_name = column_value instead of just column_value 的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47942728/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com