0

我正在尝试使用 ComboBoxes 编辑我的 JTable 中某个列的单元格的内容。因此,我只需使用 JTables 官方 Java 教程 (http://download.oracle.com/javase/tutorial/uiswing/components/table.html) 中的代码。相关代码最终看起来像这样:

tableModel = new NetworkTableModel(columnNames,0,0);
networkTable = new JTable(tableModel);
....
TableColumn sendingColumn = networkTable.getColumnModel().getColumn(3);  
JComboBox sendingBox = new JComboBox();
sendingBox.addItem("Sending");
sendingBox.addItem("Receiving");
sendingColumn.setCellEditor(new DefaultCellEditor(sendingBox));

问题是当我单击该列中的单元格时,组合框不会出现。我完全能够编辑单元格,但只能通过输入它们。为什么组合框不显示?

4

1 回答 1

0

问题解决了。

虽然我没有经验,但当基础数据发生变化时,我总是为我的表设置一个完整的新表模型(更准确地说是表示表中一行的对象数量)。这就是为什么除了我创建的表模型的第一个实例之外的所有组合框都没有显示,因为我只在这个实例上调用了 setCellEditor 方法。将我的程序更改为不总是创建新的表格模型,现在一切正常......学到了一些东西。

于 2010-10-31T11:48:13.653 回答