我正在尝试使用ComboBox编辑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));
问题是,当我点击该列中的单元格时,ComboBox不会出现。我完全能够编辑单元格,但只能输入它们。为什么ComboBox没有出现?
答案 0 :(得分:0)
解决了问题。
我没有经验,当基础数据发生变化时,我总是为我的表设置一个完整的新表模型(更精确地表示表中一行的对象数)。这就是为什么组合框除了我创建的表模型的第一个实例之外没有显示出来的原因,因为我只在这个实例上调用了setCellEditor方法。改变我的程序,并不总是创建一个新的表模型,现在一切正常......学到了一些东西。