Я читаю данные с помощью DOM Parser для обновления файла JTable
. У меня есть столбец (ValidValues), который не обязательно находится в XML.
Однако, если этот тег находится при чтении из XML, я беру значение и использую его для запроса SQL, чтобы вернуть вектор доступных записей.
Затем я хочу заполнить JTable специальным полем со списком значений, возвращенных в правильной строке, в которой был прочитан тег. Например, я не могу прочитать тег, пока 17-я строка не будет прочитана из XML-документа.
Я уже выполнил два похожих блока 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());
}
}
Попытка варианта со списком:
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);
поскольку это ссылка на всю колонку, но любые идеи будут очень признательны.
Я также кратко прочитал API для TableColumn
, над которым я все еще работаю, чтобы посмотреть, смогу ли я найти способ сослаться на строку столбца.
заранее спасибо