gpt4 book ai didi

java - 将行插入 JTable 时出现重复值

转载 作者:行者123 更新时间:2023-12-04 07:08:09 24 4
gpt4 key购买 nike

我在将行插入 JTable 时遇到问题我不知道问题是什么。

我完全是这样的:

((DefaultTableModel)myJTable.getModel()).insertRow(0,webSiteDownloader.getWebSites().toArray());
webSiteDownloader是一个具有 ArrayList 的对象.我可以通过调用方法 getWebSites 来获取该数组.

问题是,当我插入一行时,添加第二行, JTable只显示第一个,但重复了两次。我说的够清楚了吗?

谢谢:D

最佳答案

我会在黑暗中试一试,猜测你想要完成这样的事情:

DefaultTableModel dtm = (DefaultTableModel)myJTable.getModel();
for (MyRowObject row : webSiteDownloader.getWebSites()) {
dtm.insertRow(0, row.toArray());
}

您使用 insertRow 而不是 addRow 是否有特殊原因?

此外,我真的很想建议您通过扩展 AbstractTableModel 来推出您自己的特殊用途的 TableModel。基本未经测试的例子:
public class MyTableModel extends AbstractTableModel
{
protected List<MyObject> rows;

public MyTableModel()
{
rows = new ArrayList<MyObject>();
}

public void add(MyObject obj)
{
rows.add(obj);
}

@Override
public int getRowCount()
{
return rows.size();
}

@Override
public int getColumnCount()
{
// This value will be constant, but generally you'd also
// want to override getColumnName to return column names
// from an array, and in that case you can return the length
// of the array with column names instead
return 2;
}

@Override
public Object getValueAt(int row, int column)
{
MyObject obj = rows.get(row);

// Change this to match your columns
switch(column) {
case 0: return obj.getId();
case 1: return obj.getName();
}

return null;
}
}

关于java - 将行插入 JTable 时出现重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/795468/

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