如何在 jtable 行中插入 jcombobox 以获得多个值
Hashmap 包含键和值(解析 XML 的结果)。 Hashmap 以键是字符串、值是向量的方式包含事物。 键可以在向量中具有单个值或在向量中具有多个值。 该哈希图必须放入 jtable 中,这样如果键具有单个值,则将其放入文本框。如果它有多个值,请在表中插入一个组合框。
您可以更改代码。
hashmap.put(nodeList.item(j).getNodeName(), nodeValueList);
Set keys = PropertyIMPL.hashmap.keySet();
Iterator iteratorKeys = keys.iterator();
while (iteratorKeys.hasNext()) {
String key = (String) iteratorKeys.next();
if (nodeValueList.size() > 1) {
tablemodel.insertRow(0, new Object[]{key});
String[] ss = (String[]) nodeValueList.toArray(
new String[nodeValueList.size()]);
TableColumn col = table.getColumnModel().getColumn(1);
col.setCellEditor(new MyComboBoxEditor(ss));
} else {
tablemodel.insertRow(0, new Object[]{key, nodeValueList});
}
}
keys.clear();
Hashmap contains key and value(result of parsing an XML). Hashmap contains things in the way that key is a string and value is a vector.
A key may have single value in the vector or mutiple values in the vector.
This hashmap, has to be put into a jtable,such that if the key has single value, put it to text box. If it has multiple values insert a combobox in the table.
You may change the code.
hashmap.put(nodeList.item(j).getNodeName(), nodeValueList);
Set keys = PropertyIMPL.hashmap.keySet();
Iterator iteratorKeys = keys.iterator();
while (iteratorKeys.hasNext()) {
String key = (String) iteratorKeys.next();
if (nodeValueList.size() > 1) {
tablemodel.insertRow(0, new Object[]{key});
String[] ss = (String[]) nodeValueList.toArray(
new String[nodeValueList.size()]);
TableColumn col = table.getColumnModel().getColumn(1);
col.setCellEditor(new MyComboBoxEditor(ss));
} else {
tablemodel.insertRow(0, new Object[]{key, nodeValueList});
}
}
keys.clear();
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
简短的回答是您需要重写 JTable 的 getCellEditor(...) 方法。
Short answer is you need to override the getCellEditor(...) method of JTable.