我创建了一个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实例,因此我永远无法为列上的每个单元格获取不同的组合框实例并将所选项目设置为它们
任何帮助都会非常感激。
非常感谢,
志
答案 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之间进行任何解析
简单使用(JTable
或XxxTableModel
)。setValueAt
在JTable
中显示所需的值(由TableCellRenderer
绘制)
有关Oracle教程中TableCellRenderer
和TableCellEditor
的更多信息
答案 1 :(得分:0)
在customComboBoxRenderer
致电setSelectedItem(same type as your jcombobox elements, in this case String)
在你的
里面 getTableCellRendererComponent(.. )
方法