Java 使用组合框更新JTable中的特定单元格
我正在使用DOM解析器读取数据以更新Java 使用组合框更新JTable中的特定单元格,java,swing,jtable,jcombobox,tablecelleditor,Java,Swing,Jtable,Jcombobox,Tablecelleditor,我正在使用DOM解析器读取数据以更新JTable。我有一个列(ValidValues),它不一定位于XML中 但是,如果在从XML读入时找到了这个标记,我将获取该值并使用它从SQL查询返回可用记录的向量 然后,我希望在JTable中填充一个特定的组合框,其中包含读取标记的正确行上返回的值。例如,在从XML文档中读入第17行之前,我可能不会读取标记 我已经在同一个代码中完成了两个类似的JCombo框,但它们保持不变,因此没有任何问题 由于单元格之间会发生变化,我不确定如何继续,我浏览了Oracle
JTable
。我有一个列(ValidValues),它不一定位于XML中
但是,如果在从XML读入时找到了这个标记,我将获取该值并使用它从SQL查询返回可用记录的向量
然后,我希望在JTable中填充一个特定的组合框,其中包含读取标记的正确行上返回的值。例如,在从XML文档中读入第17行之前,我可能不会读取标记
我已经在同一个代码中完成了两个类似的JCombo框,但它们保持不变,因此没有任何问题
由于单元格之间会发生变化,我不确定如何继续,我浏览了Oracle教程,但它们似乎只演示了如何更改一列。进一步的研究也没有发现与这一领域有关的东西
通过向量更新的常量JComboBox代码:
propColumn = table.getColumnModel().getColumn(ENV_PROPERTIES_COLUMN);
propComboBox = new JComboBox();
propComboBox.addItem("");
constructEnvProperties();
propColumn.setCellEditor(new DefaultCellEditor(propComboBox));
public void constructEnvProperties(){
IWM781EnvProfilePropertiesCtl ctl = new IWM781EnvProfilePropertiesCtl();
Vector<IWM781EnvProfileProperties> recordSet = ctl.getRecordSet("TestEnvXXX", con);
for(int i = 0; i < recordSet.size(); i++){
logger.debug(recordSet.get(i).getProp781Property());
propComboBox.addItem(recordSet.get(i).getProp781Property());
}
}
因为它引用了整个专栏,但任何想法都将不胜感激
我还简要阅读了
提前感谢听起来有些行可能有不同的
JComboBox
值。您可以利用中所示的方法,该方法覆盖getCellEditor()
,为某些行提供所需的内容。非常感谢您的帮助,覆盖getCellEditor提供了更多的自由,可以具体定义如何设置单元格;当您使用DOM解析器时,考虑在<代码> > ActucTababMuldel[/Cord]的具体实现中包含<代码>文档<代码>。原谅我,但您的意思是什么?我已经实现了我自己的自定义表模型,该模型扩展了AbstratDataModel,并将其与我的JTable一起使用,但在我想到的任何时候都不将其引用到文档中,其中,TableModel
访问一个私有数据结构以履行其合同。我已经完成了项目本身,因此可能会继续修改它并尝试以这种方式实现它
if(tableEntryElement.getElementsByTagName("ValidValues").item(0) != null){
// Build combo box based on <SystemCode> tag
logger.debug(tableEntryElement.getElementsByTagName("ValidValues").item(0).getTextContent());
TableColumn optionColumn = table.getColumnModel().getColumn(OPTION_COLUMN);
JComboBox optionComboBox = new JComboBox();
optionComboBox.addItem("");
constructOptions(tableEntryElement);
optionColumn.setCellEditor(new DefaultCellEditor(optionComboBox));
}
TableColumn optionColumn = table.getColumnModel().getColumn(OPTION_COLUMN);