如何在每行的Combobox中显示不同的值

时间:2014-07-01 11:04:03

标签: java swing jtable jcombobox tablecelleditor

对于我的项目,我只想展示一个带JTable的对话框。在那我想要显示一个基于行索引的可用人员的JCombobox。我尝试了以下编码,

for(int i=0;i<n;i++)
{
Object obj[] = new Object[4];
obj[0]=2,
obj[1]=3;
obj[2]="";  //Here combo appear.
obj[3]=3;
JComboBox aa = new JComboBox();
for(int j=0;j<m;j++)
{
aa.addItem(rs.getString(1));
aa.addItem(rs.getString(2));
}
table.getcolumnModel.getcolumn(2).setcellEditor(new DefaultCellEditor(aa));
model.addRow(obj);
}

如果我使用此输出生成。但是最后一行的组合值存在于所有先前的行组合中。那些不同的价值不在其中。它完全一样。但是所有其他文本字段都正确显示。我该怎么办感谢你......

注意:这里

 aa.addItem(rs.getString(1));
 aa.addItem(rs.getString(2));

就是例如。实际上它会根据id返回许多值。

1 个答案:

答案 0 :(得分:1)

您尝试将编辑器设置为每一行,但这是错误的,编辑器可以设置为整列。阅读Concepts: Editors and Renderers。而不是在getTableCellEditorComponent()的{​​{1}}方法中实现您的逻辑。

每行具有不同值的简单示例:

TableCellEditor