我正在尝试使用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的属性,而不是将组合框本身显示为对象。谁能帮我?感谢
答案 0 :(得分:0)
要将组合框设置为列上的编辑器,您必须使用以下命令获取列:
TableColumn comboColumn = table.getColumnModel().getColumn(1);
而不是1
,放置实际的列索引(0表示第一列,1表示第二列等)。然后:
comboColumn.setCellEditor(new DefaultCellEditor(comboBox));
另外,考虑创建一个自己的类,它将扩展AbstractTableModel
,然后使用您的类作为表模型而不是DefaultTableModel
- 也许您不必这样做,但它会给出您可以更灵活地定义jTable的行为。