选择JTable单元格中包含的JComboBox上的项目

时间:2013-11-12 18:17:30

标签: java swing jtable jcombobox tablecelleditor

我创建了一个JComboBox,我在JTable的列上使用它 - 请参阅下面的代码。

Object[] items = {"1", "2", "3", "4"};
JComboBox comboBox = new JComboBox(items);
comboBox.setRenderer(new customComboBoxRenderer());
myTable.getColumnModel().getColumn(Table.CONF_COL).setCellEditor(new DefaultCellEditor(comboBox));

现在,我的问题是我无法找到一种方法来使表格列中的每个组合框与组合框具有初始值(在每个组合框上可能不同),这也是所选项目程序启动时的特定组合框的 我认为问题正在创建,因为JTable只为列的所有单元格使用了一个JComboBox实例,因此我永远无法为列上的每个单元格获取不同的组合框实例并将所选项目设置为它们

任何帮助都会非常感激。

非常感谢,

2 个答案:

答案 0 :(得分:2)

  • 阅读Oracle教程How to use Tables - Using a Combo Box as an Editor了解工作代码示例

  • 所有内容都取决于DefaultComboBoxModel中存储的值,在您的情况下,我Integer es模型<{1}}的值String不是JComboBox

  • 存储在XxxTableModel中的值,表示JComboBox中选定或初始值TableCellEditor

  • 你也可以存储Integer值,以避免在String和Integer之间进行任何解析

  • 简单使用(JTableXxxTableModel)。setValueAtJTable中显示所需的值(由TableCellRenderer绘制)

  • 有关Oracle教程中TableCellRendererTableCellEditor的更多信息

答案 1 :(得分:0)

customComboBoxRenderer

致电setSelectedItem(same type as your jcombobox elements, in this case String)

在你的

里面

getTableCellRendererComponent(.. )方法