我表中的一行是 ComboBox。他们可以在“是”、“否”、“两者”之间进行选择。如果他们选择“两者”,则必须对正在构建表的数据数组进行一些修改并刷新表。在上一篇文章中建议在 Both 的 else 语句中构建我的逻辑。
protected void setValue(Object element, Object value)
{
if((element instanceof AplotDatasetData) && (value instanceof Integer)) {
Integer choice = (Integer)value;
String option = ((AplotDatasetData)element).getMarkupValue();;
if(choice == 0) {
option = "No";
}
else if(choice == 1) {
option = "Yes";
}
else {
option = "Both";
abd.getIndexOfSelectedBoth(); <<<<<<<<<
}
((AplotDatasetData)element).setMarkupValue(option);
getViewer().update(element, null);
}
}
上面的代码在类 OptionEditingSupport 中。
该表在 AplotBaseDailog 类中。
所以在OptionEditingSupport类中,我导入了AplotBaseDailog类并赋值。
AplotBaseDialog abd;
然后我在 AplotBaseDailog 类中编写了一个方法来获取他们刚刚更改为 Both 的列的行索引。我需要索引值来从数组中获取数据。
public void getIndexOfSelectedBoth() {
int row = viewer.getTable().getSelectionIndex();
AplotDataModel.getInstance().rebuildDataArray(row);
updateTableViewer();
}
然后我将行的索引传递给我的 dataModel 类中的一个方法。它位于具有数据数组的 dataModel 类中。
我猜我在这里重新发明轮子。必须有更好的方法来完成这个过程。现在,我的所有代码都已到位,我在调用 AplotBaseDialog 的行处收到空指针错误
else {
option = "Both";
abd.getIndexOfSelectedBoth(); <<<<----
}
您可以在 OptionEditingSupport 类中获取索引吗?