我有两个列表,第一个列表包含员工姓名,第二个列表包含员工ID。在我的jtable中,我有两列#34; Name"和" ID"。有没有办法在jtable列中明智地添加数据列?
public static ArrayList <String> Name = new ArrayList <String>();
public static ArrayList <Double> ID = new ArrayList <Double>();
String[] columns = {"Name","ID"};
JTable table = new JTable(Columns,0);
//What to enter here
我读过许多文章,说jtable中你只能添加行数据。但在我的情况下,数组不包含行的信息。此外,我试图将两个行合并到一个列表中,但这也无法解决问题。
答案 0 :(得分:0)
首先考虑使用类或字典来存储您的值。好吧,让我深入研究如何使用行和列迭代来解决它:
行迭代
我将首先解释如何使用行迭代来解决问题,因为它是推荐的(下面的列迭代)。您可以使用for循环迭代它们并同时添加值。例如:
DefaultTableModel model = new DefaultTableModel();
for (int i = 0; i < Name.size(); i++) {
Object[] o = new Object[2];
o[0] = Name.get(i);
if(i<ID.size())
{
o[1] = ID.get(i);
}
model.addRow(o);
}
model.setColumnIdentifiers(columns);
table.setModel(model);
另请考虑使用int
代替ID。
列迭代
但是如果你真的想使用列迭代,请查看以下链接:
Adding Columns to JTable dynamically
基本上,该帖子中解释的是你需要将列添加到模型中,然后将带有值的对象数组添加到模型中。
model.addColumn("ID", ID.toArray());