Java 动态更改JComboBox单元编辑器

Java 动态更改JComboBox单元编辑器,java,swing,jtable,jcombobox,tablecelleditor,Java,Swing,Jtable,Jcombobox,Tablecelleditor,我所拥有的唯一样本相当大,因此我希望将此作为一个一般性问题发布,以了解内部流程 JTable有两个JComboBox作为两个不同列的单元格编辑器。 JCombox2中的选择列表将取决于从JCombox1中选择的内容 这在很大程度上起作用。 当从JCombox1中选择项目时,列表会在JCombox2的场景后面动态更改。 问题是数据是在我显式单击JCombox2单元格之前,单元格本身不会更改 如果在动态更改JComboBox2数据的代码中,我还通过以下调用显式更改单元格数据,那么效果很好 myTab

我所拥有的唯一样本相当大,因此我希望将此作为一个一般性问题发布,以了解内部流程

JTable有两个JComboBox作为两个不同列的单元格编辑器。 JCombox2中的选择列表将取决于从JCombox1中选择的内容

这在很大程度上起作用。 当从JCombox1中选择项目时,列表会在JCombox2的场景后面动态更改。 问题是数据是在我显式单击JCombox2单元格之前,单元格本身不会更改

如果在动态更改JComboBox2数据的代码中,我还通过以下调用显式更改单元格数据,那么效果很好

myTable.getModel().setValueAt(comboBox2.getModel().getElementAt(0), row, col);
ComboBox和表模型都将更新,这是预期的过程吗?
有没有一种方法可以简单地更新ComboBox2并让它自动更新JTable中的内容?

我可以想象,当为第一列调用
setValueAt
时,您也会验证第二列的值,并根据需要更改它。您到底是如何更改Combox2的数据的?我刚刚编写了一个小测试程序,当我在框1中选择某个对象时,调用comboBox2.setModel(更新/新建组合框模型),框2中的数据从当前选择更改为新组合框模型中的第一项。这就是我正在做的。ComboBox2中的数据会按预期更改,但如果不单击单元格查看ComboBox2的内容,则实际的单元格数据仍保留其以前的值。只有在单击单元格2后,才会替换数据。我必须在调用时包含setValueAt,以便更改单元格中的数据,以防用户从未决定单击ComboBox2。我想知道如果同时拥有CellRenderer和CellEditor,是否需要调用setValueAt。我将考虑将样本缩小到可管理的程度。