Java 如何使用DefaultTableModel.addrow()将jcombobox添加到jtable中?

Java 如何使用DefaultTableModel.addrow()将jcombobox添加到jtable中?,java,jtable,jcombobox,Java,Jtable,Jcombobox,我试图使用DefaultTableModel addrow()方法在两行单元格中添加两个jcombobox。像这样: DefaultTableModel dtm = new DefaultTableModel(); JComboBox jcb1 = new JComboBox; JComboBox jcb2 = new JComboBox; JComboBox[] row={jcb1,jcb2}; dtm.addRow(row); myTable.setModel(dtm); 碰巧的是,表获取

我试图使用DefaultTableModel addrow()方法在两行单元格中添加两个jcombobox。像这样:

DefaultTableModel dtm = new DefaultTableModel();
JComboBox jcb1 = new JComboBox;
JComboBox jcb2 = new JComboBox;
JComboBox[] row={jcb1,jcb2};
dtm.addRow(row);
myTable.setModel(dtm);

碰巧的是,表获取了整个内容,并在每个单元格中显示JComboBox.toString,即每个JComboBox的属性,而不是显示组合框本身和对象。有人能帮我吗?感谢

要将组合框设置为列的编辑器,必须使用以下方法获取列:

TableColumn comboColumn = table.getColumnModel().getColumn(1);
而不是
1
,放入实际的列索引(0表示第一列,1表示第二列等)。然后:

comboColumn.setCellEditor(new DefaultCellEditor(comboBox));

也可以考虑创建自己的类,它将扩展<代码> ActucTababMuldel[/Cuff] >,然后使用类作为表模型,而不是<代码> Debug TababMuldel[/Cudio] > -也许您不必这样做,但它将为您定义jTable的行为提供更大的灵活性。

请参见。我投票将此问题作为离题题题来结束,因为教程中已对其进行了解释和演示。