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

时间:2016-02-23 16:41:29

标签: 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);

恰好该表占用了整个东西,并在每个单元格中显示JComboBox.toString,即每个JComboBox的属性,而不是将组合框本身显示为对象。谁能帮我?感谢

1 个答案:

答案 0 :(得分:0)

要将组合框设置为列上的编辑器,您必须使用以下命令获取列:

TableColumn comboColumn = table.getColumnModel().getColumn(1);

而不是1,放置实际的列索引(0表示第一列,1表示第二列等)。然后:

comboColumn.setCellEditor(new DefaultCellEditor(comboBox));

另外,考虑创建一个自己的类,它将扩展AbstractTableModel,然后使用您的类作为表模型而不是DefaultTableModel - 也许您不必这样做,但它会给出您可以更灵活地定义jTable的行为。